Revision: 349 Author: alai04 Date: Thu Nov 26 23:54:32 2009 Log: 升级至1.41.0,第一批,libs/目录下a-f子目录 http://code.google.com/p/boost-doc-zh/source/detail?r=349 Added: /trunk/libs/exception/doc/boost_exception_errinfo_nested_exception_hpp.html /trunk/libs/exception/doc/diagnostic_information_what.html /trunk/libs/exception/doc/errinfo_nested_exception.html /trunk/libs/fusion/doc/html/fusion/functional/adapters/limits.html /trunk/libs/fusion/doc/html/fusion/functional/adapters/unfused.html/trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_unfused.html /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html
/trunk/libs/fusion/doc/html/fusion/functional/invocation/limits.html /trunk/libs/fusion/doc/html/fusion/view/nview.html /trunk/libs/property_tree /trunk/libs/property_tree/doc /trunk/libs/property_tree/doc/images /trunk/libs/property_tree/doc/images/ptree2code.png /trunk/libs/property_tree/examples /trunk/libs/property_tree/examples/custom_data_type.cpp /trunk/libs/property_tree/examples/debug_settings.cpp /trunk/libs/property_tree/examples/debug_settings.xml /trunk/libs/property_tree/examples/empty_ptree_trick.cpp /trunk/libs/property_tree/examples/info_grammar_spirit.cpp /trunk/libs/property_tree/examples/settings_fully-existent.info /trunk/libs/property_tree/examples/settings_non-existent.info /trunk/libs/property_tree/examples/settings_partially-existent.info /trunk/libs/property_tree/examples/speed_test.cpp /trunk/libs/property_tree/index.html /trunk/libs/property_tree/test /trunk/libs/property_tree/test/Jamfile.v2 /trunk/libs/property_tree/test/custom-build /trunk/libs/property_tree/test/custom-build/Makefile /trunk/libs/property_tree/test/custom-build/Makefile-Common /trunk/libs/property_tree/test/custom-build/debug_settings.xml /trunk/libs/property_tree/test/custom-build/gcc.mak /trunk/libs/property_tree/test/custom-build/icc.mak /trunk/libs/property_tree/test/custom-build/sandbox.vcproj /trunk/libs/property_tree/test/custom-build/settings_fully-existent.info /trunk/libs/property_tree/test/custom-build/settings_non-existent.info/trunk/libs/property_tree/test/custom-build/settings_partially-existent.info /trunk/libs/property_tree/test/custom-build/test_example_custom_data_type.vcproj /trunk/libs/property_tree/test/custom-build/test_example_debug_settings.vcproj /trunk/libs/property_tree/test/custom-build/test_example_empty_ptree_trick.vcproj
/trunk/libs/property_tree/test/custom-build/test_info_grammar_spirit.vcproj /trunk/libs/property_tree/test/custom-build/test_info_parser.vcproj /trunk/libs/property_tree/test/custom-build/test_ini_parser.vcproj /trunk/libs/property_tree/test/custom-build/test_json_parser.vcproj /trunk/libs/property_tree/test/custom-build/test_multi_module.vcproj /trunk/libs/property_tree/test/custom-build/test_property_tree.vcproj /trunk/libs/property_tree/test/custom-build/test_xml_parser.vcproj /trunk/libs/property_tree/test/custom-build/tests.sln /trunk/libs/property_tree/test/custom-build/vc.mak /trunk/libs/property_tree/test/sandbox.cpp /trunk/libs/property_tree/test/test_info_parser.cpp /trunk/libs/property_tree/test/test_ini_parser.cpp /trunk/libs/property_tree/test/test_json_parser.cpp /trunk/libs/property_tree/test/test_multi_module1.cpp /trunk/libs/property_tree/test/test_multi_module2.cpp /trunk/libs/property_tree/test/test_property_tree.cpp /trunk/libs/property_tree/test/test_property_tree.hpp /trunk/libs/property_tree/test/test_registry_parser.cpp /trunk/libs/property_tree/test/test_utils.hpp /trunk/libs/property_tree/test/test_xml_parser_common.hpp /trunk/libs/property_tree/test/test_xml_parser_rapidxml.cpp /trunk/libs/property_tree/test/xml_parser_test_data.hpp Modified: /trunk/libs/concept_check/using_concept_check.htm /trunk/libs/config/doc/html/boost_config/boost_macro_reference.html /trunk/libs/config/doc/html/index.html /trunk/libs/disjoint_sets/disjoint_sets.html /trunk/libs/exception/doc/boost_exception_all_hpp.html /trunk/libs/exception/doc/boost_exception_diagnostic_information_hpp.html /trunk/libs/exception/doc/boost_exception_errinfo_api_function_hpp.html /trunk/libs/exception/doc/boost_exception_error_info_hpp.html /trunk/libs/exception/doc/boost_exception_get_error_info_hpp.html /trunk/libs/exception/doc/boost_exception_info_hpp.html /trunk/libs/exception/doc/configuration_macros.html /trunk/libs/exception/doc/diagnostic_information.html /trunk/libs/exception/doc/errinfo_api_function.html /trunk/libs/exception/doc/error_info.html /trunk/libs/exception/doc/error_info_value.html /trunk/libs/exception/doc/error_info_value_type.html /trunk/libs/exception/doc/exception.html /trunk/libs/exception/doc/exception_ptr.html /trunk/libs/exception/doc/functions.html /trunk/libs/exception/doc/get_error_info.html /trunk/libs/exception/doc/headers.html /trunk/libs/exception/doc/page_idx.html /trunk/libs/exception/doc/reno.css /trunk/libs/exception/doc/synopsis.html /trunk/libs/exception/doc/throw_exception.html /trunk/libs/exception/doc/types.html /trunk/libs/filesystem/doc/reference.html /trunk/libs/fusion/doc/html/fusion/acknowledgements.html /trunk/libs/fusion/doc/html/fusion/adapted/adapt_assoc.html /trunk/libs/fusion/doc/html/fusion/adapted/adapt_struct.html /trunk/libs/fusion/doc/html/fusion/adapted/boost__array.html /trunk/libs/fusion/doc/html/fusion/adapted/boost__tuple.html /trunk/libs/fusion/doc/html/fusion/adapted/mpl_sequence.html /trunk/libs/fusion/doc/html/fusion/adapted/std__pair.html /trunk/libs/fusion/doc/html/fusion/adapted.html/trunk/libs/fusion/doc/html/fusion/algorithm/iteration/functions/accumulate.html
/trunk/libs/fusion/doc/html/fusion/algorithm/iteration/functions/fold.html/trunk/libs/fusion/doc/html/fusion/algorithm/iteration/functions/for_each.html
/trunk/libs/fusion/doc/html/fusion/algorithm/iteration/functions.html/trunk/libs/fusion/doc/html/fusion/algorithm/iteration/metafunctions/accumulate.html /trunk/libs/fusion/doc/html/fusion/algorithm/iteration/metafunctions/fold.html /trunk/libs/fusion/doc/html/fusion/algorithm/iteration/metafunctions/for_each.html
/trunk/libs/fusion/doc/html/fusion/algorithm/iteration/metafunctions.html /trunk/libs/fusion/doc/html/fusion/algorithm/iteration.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/all.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/any.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/count.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/count_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/find.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/find_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions/none.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/functions.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/all.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/any.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/count.html/trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/count_if.html
/trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/find.html/trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/find_if.html
/trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions/none.html /trunk/libs/fusion/doc/html/fusion/algorithm/query/metafunctions.html /trunk/libs/fusion/doc/html/fusion/algorithm/query.html/trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/clear.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/erase.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/erase_key.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/filter.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/filter_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/insert.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/insert_range.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/join.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/pop_back.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/pop_front.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/push_back.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/push_front.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/remove.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/remove_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/replace.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/replace_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/reverse.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/transform.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions/zip.html
/trunk/libs/fusion/doc/html/fusion/algorithm/transformation/functions.html/trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/clear.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/erase.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/erase_key.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/filter.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/filter_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/insert.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/insert_range.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/join.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/pop_back.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/pop_front.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/push_back.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/push_front.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/remove.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/remove_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/replace.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/replace_if.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/reverse.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/transform.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions/zip.html /trunk/libs/fusion/doc/html/fusion/algorithm/transformation/metafunctions.html
/trunk/libs/fusion/doc/html/fusion/algorithm/transformation.html /trunk/libs/fusion/doc/html/fusion/algorithm.html /trunk/libs/fusion/doc/html/fusion/change_log.html /trunk/libs/fusion/doc/html/fusion/container/cons.html/trunk/libs/fusion/doc/html/fusion/container/conversion/functions/as_list.html /trunk/libs/fusion/doc/html/fusion/container/conversion/functions/as_map.html /trunk/libs/fusion/doc/html/fusion/container/conversion/functions/as_set.html /trunk/libs/fusion/doc/html/fusion/container/conversion/functions/as_vector.html
/trunk/libs/fusion/doc/html/fusion/container/conversion/functions.html/trunk/libs/fusion/doc/html/fusion/container/conversion/metafunctions/as_list.html /trunk/libs/fusion/doc/html/fusion/container/conversion/metafunctions/as_map.html /trunk/libs/fusion/doc/html/fusion/container/conversion/metafunctions/as_set.html /trunk/libs/fusion/doc/html/fusion/container/conversion/metafunctions/as_vector.html
/trunk/libs/fusion/doc/html/fusion/container/conversion/metafunctions.html /trunk/libs/fusion/doc/html/fusion/container/conversion.html/trunk/libs/fusion/doc/html/fusion/container/generation/functions/list_tie.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/make_cons.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/make_list.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/make_map.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/make_set.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/make_vector.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/map_tie.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/tiers.html /trunk/libs/fusion/doc/html/fusion/container/generation/functions/vector_tie.html
/trunk/libs/fusion/doc/html/fusion/container/generation/functions.html/trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/list_tie.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/make_cons.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/make_list.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/make_map.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/make_set.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/make_vector.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/map_tie.html /trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions/vector_tie.html
/trunk/libs/fusion/doc/html/fusion/container/generation/metafunctions.html /trunk/libs/fusion/doc/html/fusion/container/generation.html /trunk/libs/fusion/doc/html/fusion/container/list.html /trunk/libs/fusion/doc/html/fusion/container/map.html /trunk/libs/fusion/doc/html/fusion/container/set.html /trunk/libs/fusion/doc/html/fusion/container/vector.html /trunk/libs/fusion/doc/html/fusion/container.html /trunk/libs/fusion/doc/html/fusion/extension/ext_full.html /trunk/libs/fusion/doc/html/fusion/extension/iterator_facade.html /trunk/libs/fusion/doc/html/fusion/extension/sequence_facade.html /trunk/libs/fusion/doc/html/fusion/extension.html /trunk/libs/fusion/doc/html/fusion/functional/adapters/fused.html/trunk/libs/fusion/doc/html/fusion/functional/adapters/fused_function_object.html
/trunk/libs/fusion/doc/html/fusion/functional/adapters/fused_procedure.html /trunk/libs/fusion/doc/html/fusion/functional/adapters/unfused_generic.html/trunk/libs/fusion/doc/html/fusion/functional/adapters/unfused_lvalue_args.html /trunk/libs/fusion/doc/html/fusion/functional/adapters/unfused_rvalue_args.html
/trunk/libs/fusion/doc/html/fusion/functional/adapters/unfused_typed.html /trunk/libs/fusion/doc/html/fusion/functional/adapters.html /trunk/libs/fusion/doc/html/fusion/functional/concepts/callable.html /trunk/libs/fusion/doc/html/fusion/functional/concepts/def_callable.html /trunk/libs/fusion/doc/html/fusion/functional/concepts/poly.html /trunk/libs/fusion/doc/html/fusion/functional/concepts/reg_callable.html /trunk/libs/fusion/doc/html/fusion/functional/concepts.html/trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_fused.html /trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_fused_fobj.html /trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_fused_proc.html /trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_unfused_genrc.html /trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_unfused_lvargs.html /trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_unfused_rvargs.html
/trunk/libs/fusion/doc/html/fusion/functional/generation/functions.html/trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_fused.html /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_fused_fobj.html /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_fused_proc.html /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_unfused_genrc.html /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_unfused_lvargs.html /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_unfused_rvargs.html
/trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions.html /trunk/libs/fusion/doc/html/fusion/functional/generation.html/trunk/libs/fusion/doc/html/fusion/functional/invocation/functions/invoke.html /trunk/libs/fusion/doc/html/fusion/functional/invocation/functions/invoke_fobj.html /trunk/libs/fusion/doc/html/fusion/functional/invocation/functions/invoke_proc.html
/trunk/libs/fusion/doc/html/fusion/functional/invocation/functions.html/trunk/libs/fusion/doc/html/fusion/functional/invocation/metafunctions/invoke.html /trunk/libs/fusion/doc/html/fusion/functional/invocation/metafunctions/invoke_fobj.html /trunk/libs/fusion/doc/html/fusion/functional/invocation/metafunctions/invoke_proc.html
/trunk/libs/fusion/doc/html/fusion/functional/invocation/metafunctions.html /trunk/libs/fusion/doc/html/fusion/functional/invocation.html /trunk/libs/fusion/doc/html/fusion/functional.html /trunk/libs/fusion/doc/html/fusion/introduction.html/trunk/libs/fusion/doc/html/fusion/iterator/concepts/bidirectional_iterator.html
/trunk/libs/fusion/doc/html/fusion/iterator/concepts/forward_iterator.html/trunk/libs/fusion/doc/html/fusion/iterator/concepts/random_access_iterator.html
/trunk/libs/fusion/doc/html/fusion/iterator/concepts.html /trunk/libs/fusion/doc/html/fusion/iterator/functions/advance.html /trunk/libs/fusion/doc/html/fusion/iterator/functions/advance_c.html /trunk/libs/fusion/doc/html/fusion/iterator/functions/deref.html /trunk/libs/fusion/doc/html/fusion/iterator/functions/distance.html /trunk/libs/fusion/doc/html/fusion/iterator/functions/next.html /trunk/libs/fusion/doc/html/fusion/iterator/functions/prior.html /trunk/libs/fusion/doc/html/fusion/iterator/functions.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/advance.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/advance_c.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/deref.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/distance.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/equal_to.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/next.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/prior.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions/value_of.html /trunk/libs/fusion/doc/html/fusion/iterator/metafunctions.html /trunk/libs/fusion/doc/html/fusion/iterator/operator/operator_equality.html/trunk/libs/fusion/doc/html/fusion/iterator/operator/operator_inequality.html /trunk/libs/fusion/doc/html/fusion/iterator/operator/operator_unary_star.html
/trunk/libs/fusion/doc/html/fusion/iterator/operator.html /trunk/libs/fusion/doc/html/fusion/iterator.html /trunk/libs/fusion/doc/html/fusion/notes.html /trunk/libs/fusion/doc/html/fusion/organization.html /trunk/libs/fusion/doc/html/fusion/preface.html /trunk/libs/fusion/doc/html/fusion/quick_start.html /trunk/libs/fusion/doc/html/fusion/references.html/trunk/libs/fusion/doc/html/fusion/sequence/concepts/associative_sequence.html /trunk/libs/fusion/doc/html/fusion/sequence/concepts/bidirectional_sequence.html
/trunk/libs/fusion/doc/html/fusion/sequence/concepts/forward_sequence.html/trunk/libs/fusion/doc/html/fusion/sequence/concepts/random_access_sequence.html
/trunk/libs/fusion/doc/html/fusion/sequence/concepts.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/at.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/at_c.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/at_key.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/back.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/begin.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/empty.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/end.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/front.html/trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/has_key.html
/trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/size.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/swap.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/functions.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/at.html/trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/at_c.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/at_key.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/back.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/begin.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/empty.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/end.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/front.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/has_key.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/size.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/swap.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/value_at.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_c.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions/value_at_key.html
/trunk/libs/fusion/doc/html/fusion/sequence/intrinsic/metafunctions.html /trunk/libs/fusion/doc/html/fusion/sequence/intrinsic.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison/equal.html/trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison/greater_than.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison/greater_than_equal.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison/less_than.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison/less_than_equal.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison/not_equal.html
/trunk/libs/fusion/doc/html/fusion/sequence/operator/comparison.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/i_o/in.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/i_o/out.html /trunk/libs/fusion/doc/html/fusion/sequence/operator/i_o.html /trunk/libs/fusion/doc/html/fusion/sequence/operator.html /trunk/libs/fusion/doc/html/fusion/sequence.html /trunk/libs/fusion/doc/html/fusion/support/category_of.html /trunk/libs/fusion/doc/html/fusion/support/deduce.html /trunk/libs/fusion/doc/html/fusion/support/deduce_sequence.html /trunk/libs/fusion/doc/html/fusion/support/is_sequence.html /trunk/libs/fusion/doc/html/fusion/support/is_view.html /trunk/libs/fusion/doc/html/fusion/support/pair.html /trunk/libs/fusion/doc/html/fusion/support/tag_of.html /trunk/libs/fusion/doc/html/fusion/support.html/trunk/libs/fusion/doc/html/fusion/tuple/class_template_tuple/construction.html /trunk/libs/fusion/doc/html/fusion/tuple/class_template_tuple/element_access.html /trunk/libs/fusion/doc/html/fusion/tuple/class_template_tuple/relational_operators.html /trunk/libs/fusion/doc/html/fusion/tuple/class_template_tuple/tuple_creation_functions.html /trunk/libs/fusion/doc/html/fusion/tuple/class_template_tuple/tuple_helper_classes.html
/trunk/libs/fusion/doc/html/fusion/tuple/class_template_tuple.html /trunk/libs/fusion/doc/html/fusion/tuple/pairs.html /trunk/libs/fusion/doc/html/fusion/tuple.html /trunk/libs/fusion/doc/html/fusion/view/filter_view.html /trunk/libs/fusion/doc/html/fusion/view/iterator_range.html /trunk/libs/fusion/doc/html/fusion/view/joint_view.html /trunk/libs/fusion/doc/html/fusion/view/reverse_view.html /trunk/libs/fusion/doc/html/fusion/view/single_view.html /trunk/libs/fusion/doc/html/fusion/view/transform_view.html /trunk/libs/fusion/doc/html/fusion/view/zip_view.html /trunk/libs/fusion/doc/html/fusion/view.html /trunk/libs/fusion/doc/html/index.html /trunk/libs/fusion/index.html /trunk/libs/libraries.htm ======================================= --- /dev/null+++ /trunk/libs/exception/doc/boost_exception_errinfo_nested_exception_hpp.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,51 @@ +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> +<head> + <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> + <title>boost/exception/errinfo_nested_exception.hpp</title> + <link href='reno.css' type='text/css' rel='stylesheet'/> +</head> +<body> +<div class="body-0"> +<div class="body-1"> +<div class="body-2"> +<div> +<div id="boost_logo">+<a href="http://www.boost.org";><img style="border:0" src="../../../boost.png" alt="Boost" width="277" height="86"/></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. -->+<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> +<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h2>boost/exception/errinfo_nested_exception.hpp</h2>
+</div> +<h3>Synopsis</h3>+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>>
+ +namespace +boost + {+<span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>;</span> +<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_nested_exception_,<span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>> <span class="RenoLink"><a href="errinfo_nested_exception.html">errinfo_nested_exception</a></span>;</span></span>
+ }</pre> +</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>+See also: <span class="RenoPageList"><a href="boost_exception_all_hpp.html">boost/exception/all.hpp</a> | <a href="synopsis.html">Synopsis</a></span>
+</div> +<!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. -->+<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> +<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
+<div id="footer"> +<p>+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer";><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a> +<a class="logo" href="http://validator.w3.org/check?uri=referer";><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.</small>
+</p> +</div> +</div> +</div> +</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/diagnostic_information_what.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,50 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en"><head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ++ <title>diagnostic_information_what</title><link href="reno.css" type="text/css" rel="stylesheet" /></head>
+ +<body> +<div class="body-0"> +<div class="body-1"> +<div class="body-2"> +<div> +<div id="boost_logo">+<a href="http://www.boost.org";><img style="border: 0pt none ;" src="../../../boost.png" alt="Boost" height="86" width="277" /></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. -->+<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> +<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>diagnostic_information_what</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>><span class="RenoBR"> </span><br /></p> +<pre>namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> char const * <span class="RenoLink">diagnostic_information_what</span>( boost::<span class="RenoLink"><a href="exception.html">exception</a></span> const & e ) throw();</span>
+ }</pre>+</div><p>函数 <span class="RenoLink">diagnostic_information_what</span> 主要是为了用于从用户定义 的 std::exception::what() 覆写中进行调用。它使得诊断信息可被作为 what() 字符 串返回。</p>
+<h4>返回值:</h4>+<p>一个指针,指向一个以零结束的缓冲区,其中包含了一个字符串,类似于由A pointer to a zero-terminated
+buffer that contains a string similar to the std::string returned by+the <span class="RenoLink"><a href="diagnostic_information.html">diagnostic_information</a></span> 函数返 回的 std::string,或者返回 null 以表示一次失败。</p>
+<h4>抛出:</h4> +<p>无。</p> +<h4>备注:</h4>+<p>如果任一 <span class="RenoLink"><a href="error_info.html">error_info</a></span> 被更改,或者被加入到该 exception 对象,或者如果另一次 diagnostic information 函数被调用,则返回的 指针将变为无效。</p> +</div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div>参见:<span class="RenoPageList"><a href="boost_exception_diagnostic_information_hpp.html">boost/exception/diagnostic_information.hpp</a></span>
+</div> +<!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. -->+<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> +<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
+<div id="footer"> +<p>+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer";><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88" /></a> +<a class="logo" href="http://validator.w3.org/check?uri=referer";><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88" /></a> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.</small>
+</p> +</div> +</div> +</div> +</div> +</body></html> ======================================= --- /dev/null+++ /trunk/libs/exception/doc/errinfo_nested_exception.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,43 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en"><head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ++ <title>errinfo_nested_exception</title><link href="reno.css" type="text/css" rel="stylesheet" /></head>
+ +<body> +<div class="body-0"> +<div class="body-1"> +<div class="body-2"> +<div> +<div id="boost_logo">+<a href="http://www.boost.org";><img style="border: 0pt none ;" src="../../../boost.png" alt="Boost" height="86" width="277" /></a>
+</div> +<h1>Boost Exception</h1> +</div> +<!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. -->+<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> +<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> +<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>errinfo_nested_exception</h3>
+</div>+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_exception_errinfo_nested_exception_hpp.html">boost/exception/errinfo_nested_exception.hpp</a></span>></p> +<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink"><a href="boost_exception_error_info_hpp.html">boost/exception/error_info.hpp</a></span>><br /><br />namespace<br />boost<br /> {<br /><span class="RenoIncludeSPAN"> typedef ---unspecified--- <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>;</span> +<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">typedef <span class="RenoLink"><a href="error_info.html">error_info</a></span><struct errinfo_nested_exception_,<span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span>> <span class="RenoLink">errinfo_nested_exception</span>;</span></span>
+ }</pre>+</div></div><p>该类型的设计意图是,作为一个标准 <span class="RenoLink"><a href="error_info.html">error_info</a></span> 实例用于传输(在派生自 boost::<span class="RenoLink"><a href="exception.html">exception</a></span> 的异常中)一个 <span class="RenoLink"><a href="exception_ptr.html">exception_ptr</a></span> 至另一个异常中嵌套的异 常。</p> +</div><div class="RenoAutoDIV"><div class="RenoHR"><hr /></div>参见:<span class="RenoPageList"><a href="boost_exception_errinfo_nested_exception_hpp.html">boost/exception/errinfo_nested_exception.hpp</a></span>
+</div> +<!-- Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. -->+<!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> +<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
+<div id="footer"> +<p>+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer";><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88" /></a> +<a class="logo" href="http://validator.w3.org/check?uri=referer";><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88" /></a> +<small>Copyright (c) 2006-2009 by Emil Dotchevski and Reverge Studios, Inc.<br /> +Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt";>Boost Software License, Version 1.0</a>.</small>
+</p> +</div> +</div> +</div> +</div> +</body></html> ======================================= --- /dev/null+++ /trunk/libs/fusion/doc/html/fusion/functional/adapters/limits.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,70 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Limits</title>+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Fusion 2.0"> +<link rel="up" href="../adapters.html" title=" Adapters"> +<link rel="previous" href="unfused_typed.html" title="unfused_typed"> +<link rel="next" href="../generation.html" title="Generation"> +</head>+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
+</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="unfused_typed.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapters.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../generation.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="section" lang="en"> +<div class="titlepage"> +<div><div><h4 class="title">+<a name="fusion.functional.adapters.limits"></a><a href="limits.html" title="Limits">Limits</a>
+</h4></div></div> +<div></div> +</div> +<a name="fusion.functional.adapters.limits.header"></a><h5> +<a name="id626930"></a>+ <a href="limits.html#fusion.functional.adapters.limits.header">Header</a>
+ </h5>+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">adapter</span><span class="special">/</span><span class="identifier">limits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre> +<a name="fusion.functional.adapters.limits.macros"></a><h5> +<a name="id627034"></a>+ <a href="limits.html#fusion.functional.adapters.limits.macros">Macros</a>
+ </h5> +<p>+ The following macros can be defined to change the maximum arity. The value + used for these macros must not exceed <tt class="computeroutput"><span class="identifier">FUSION_MAX_VECTOR_SIZE</span></tt>.
+ The default is 6. + </p> +<div class="itemizedlist"><ul type="disc"> +<li> + BOOST_FUSION_UNFUSED_MAX_ARITY + </li> +<li> + BOOST_FUSION_UNFUSED_TYPE_MAX_ARITY + </li> +</ul></div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
+ Schwinger<p>+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="unfused_typed.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapters.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../generation.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/fusion/doc/html/fusion/functional/adapters/unfused.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,265 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>unfused</title>+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Fusion 2.0"> +<link rel="up" href="../adapters.html" title=" Adapters">+<link rel="previous" href="fused_function_object.html" title="fused_function_object">
+<link rel="next" href="unfused_typed.html" title="unfused_typed"> +</head>+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
+</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="fused_function_object.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapters.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unfused_typed.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="section" lang="en"> +<div class="titlepage"> +<div><div><h4 class="title">+<a name="fusion.functional.adapters.unfused"></a><a href="unfused.html" title="unfused">unfused</a>
+</h4></div></div> +<div></div> +</div> +<a name="fusion.functional.adapters.unfused.description"></a><h5> +<a name="id622635"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.description">Description</a>
+ </h5> +<p>+ An n-ary <a href="../concepts/poly.html" title=" Polymorphic Function
+ Object">Polymorphic Function+ Object</a> adapter template for an unary <a href="../concepts/poly.html" title=" Polymorphic Function
+ Object">Polymorphic+ Function Object</a> target function. When called, its arguments are + bundled to a <a href="../../sequence/concepts/random_access_sequence.html" title="Random
+ Access Sequence">Random+ Access Sequence</a> of references that is passed to the target function
+ object. + </p> +<p>+ The nullary overload of the call operator can be removed by setting the + second template parameter to <tt class="computeroutput"><span class="keyword">false</span></tt>, + which is very useful if the result type computation would result in a compile + error, otherwise (nullary call operator's prototypes can't be templates
+ and thus are instantiated as early as the class template). + </p> +<p>+ Only LValue arguments are accepted. To overcome this limitation, apply + <a href="http://www.boost.org/libs/functional/forward/doc/html/index.html"; target="_top">Boost.Functional/Forward</a>.
+ </p> +<p>+ The type of the target function is allowed to be const qualified or a reference. + Const qualification is preserved and propagated appropriately. In other + words, only const versions of <tt class="literal">operator()</tt> can be used + if the target function object is const - or, in case the target function
+ object is held by value, the adapter is const. + </p> +<a name="fusion.functional.adapters.unfused.header"></a><h5> +<a name="id622744"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.header">Header</a>
+ </h5>+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">adapter</span><span class="special">/</span><span class="identifier">unfused</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre> +<a name="fusion.functional.adapters.unfused.synopsis"></a><h5> +<a name="id622847"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.synopsis">Synopsis</a>
+ </h5>+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Function</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">AllowNullary</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">></span> +<span class="keyword">class</span> <span class="identifier">unfused</span><span class="special">;</span>
+</pre> +<a name="fusion.functional.adapters.unfused.template_parameters"></a><h5> +<a name="id622953"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.template_parameters">Template
+ parameters</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th><p> + Parameter + </p></th> +<th><p> + Description + </p></th> +<th><p> + Default + </p></th> +</tr></thead> +<tbody> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">Function</span></tt>
+ </p></td> +<td><p>+ A unary <a href="../concepts/poly.html" title=" Polymorphic Function
+ Object">Polymorphic + Function Object</a> + </p></td> +<td><p> + </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">AllowNullary</span></tt>
+ </p></td> +<td><p> + Boolean constant + </p></td> +<td><p> + true + </p></td> +</tr> +</tbody> +</table></div> +<a name="fusion.functional.adapters.unfused.model_of"></a><h5> +<a name="id623102"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.model_of">Model of</a>
+ </h5> +<div class="itemizedlist"><ul type="disc"> +<li><a href="../concepts/poly.html" title=" Polymorphic Function + Object">Polymorphic Function + Object</a></li> +<li><a href="../concepts/def_callable.html" title=" Deferred + Callable Object">Deferred Callable + Object</a></li> +</ul></div> +<div class="variablelist"> +<p class="title"><b>Notation</b></p> +<dl>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">F</span></tt></span></dt>
+<dd><p>+ A possibly const qualified, unary <a href="../concepts/poly.html" title=" Polymorphic Function
+ Object">Polymorphic + Function Object</a> type or reference type thereof + </p></dd>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt></span></dt>
+<dd><p>+ An object convertible to <tt class="computeroutput"><span class="identifier">F</span></tt>
+ </p></dd>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">UL</span></tt></span></dt>
+<dd><p>+ The type <tt class="computeroutput"><span class="identifier">unfused</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span></tt>
+ </p></dd>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ul</span></tt></span></dt>
+<dd><p>+ An instance of <tt class="computeroutput"><span class="identifier">UL</span></tt>, + initialized with <tt class="computeroutput"><span class="identifier">f</span></tt>
+ </p></dd>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a0</span></tt>...<tt class="computeroutput"><span class="identifier">aN</span></tt></span></dt>
+<dd><p>+ Arguments to <tt class="computeroutput"><span class="identifier">ul</span></tt>
+ </p></dd> +</dl> +</div> +<a name="fusion.functional.adapters.unfused.expression_semantics"></a><h5> +<a name="id623371"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.expression_semantics">Expression
+ Semantics</a> + </h5> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +</colgroup> +<thead><tr> +<th><p> + Expression + </p></th> +<th><p> + Semantics + </p></th> +</tr></thead> +<tbody> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">UL</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></tt>
+ </p></td> +<td><p>+ Creates a fused function as described above, initializes the target + function with <tt class="computeroutput"><span class="identifier">f</span></tt>.
+ </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">UL</span><span class="special">()</span></tt>
+ </p></td> +<td><p>+ Creates a fused function as described above, attempts to use <tt class="computeroutput"><span class="identifier">F</span></tt>'s default constructor.
+ </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">ul</span><span class="special">(</span><span class="identifier">a0</span></tt>...<tt class="computeroutput"><span class="identifier">aN</span><span class="special">)</span></tt>
+ </p></td> +<td><p>+ Calls <tt class="computeroutput"><span class="identifier">f</span></tt> with a + <a href="../../sequence.html" title="Sequence">Sequence</a> that contains references + to the arguments <tt class="computeroutput"><span class="identifier">a0</span></tt>...<tt class="computeroutput"><span class="identifier">aN</span></tt>.
+ </p></td> +</tr> +</tbody> +</table></div> +<a name="fusion.functional.adapters.unfused.example"></a><h5> +<a name="id623635"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.example">Example</a>
+ </h5>+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">fused_incrementer</span>
+<span class="special">{</span>+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Seq</span><span class="special">></span> + <span class="keyword">struct</span> <span class="identifier">result</span>
+ <span class="special">{</span>+ <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span> ++ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Seq</span><span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Seq</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">s</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>+ <a href="../../algorithm/iteration/functions/for_each.html" title="for_each"><tt class="computeroutput"><span class="identifier">for_each</span></tt></a><span class="special">(</span><span class="identifier">s</span><span class="special">,++</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lambda</span><span class="special">::</span><span class="identifier">_1</span><span class="special">);</span>
+ <span class="special">}</span> +<span class="special">};</span> ++<span class="keyword">void</span> <span class="identifier">try_it</span><span class="special">()</span>
+<span class="special">{</span>+ <span class="identifier">unfused</span><span class="special"><</span><span class="identifier">fused_incrementer</span><span class="special">></span> <span class="identifier">increment</span><span class="special">;</span> + <span class="keyword">int</span> <span class="identifier">a</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="keyword">char</span> <span class="identifier">b</span> <span class="special">=</span> <span class="char">'X'</span><span class="special">;</span> + <span class="identifier">increment</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span><span class="identifier">b</span><span class="special">);</span> + <span class="identifier">assert</span><span class="special">(</span><span class="identifier">a</span> <span class="special">==</span> <span class="number">3</span> <span class="special">&&</span> <span class="identifier">b</span> <span class="special">==</span> <span class="char">'Y'</span><span class="special">);</span>
+<span class="special">}</span> +</pre> +<a name="fusion.functional.adapters.unfused.see_also"></a><h5> +<a name="id624132"></a>+ <a href="unfused.html#fusion.functional.adapters.unfused.see_also">See also</a>
+ </h5> +<div class="itemizedlist"><ul type="disc">+<li><a href="unfused_typed.html" title="unfused_typed"><tt class="computeroutput"><span class="identifier">unfused_typed</span></tt></a></li>
+<li><a href="../generation/functions/mk_unfused.html" title="+ make_unfused"><tt class="computeroutput"><span class="identifier">make_unfused</span></tt></a></li>
+</ul></div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
+ Schwinger<p>+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="fused_function_object.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adapters.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unfused_typed.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/fusion/doc/html/fusion/functional/generation/functions/mk_unfused.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,163 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title> + make_unfused</title>+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">+<link rel="home" href="../../../../index.html" title="Chapter 1. Fusion 2.0">
+<link rel="up" href="../functions.html" title="Functions"> +<link rel="previous" href="mk_fused_fobj.html" title=" + make_fused_function_object"> +<link rel="next" href="../metafunctions.html" title="Metafunctions"> +</head>+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
+</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="mk_fused_fobj.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="section" lang="en"> +<div class="titlepage"> +<div><div><h5 class="title">+<a name="fusion.functional.generation.functions.mk_unfused"></a><a href="mk_unfused.html" title="
+ make_unfused"> + make_unfused</a> +</h5></div></div> +<div></div> +</div>+<a name="fusion.functional.generation.functions.mk_unfused.description"></a><h6>
+<a name="id630954"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.description">Description</a>
+ </h6> +<p>+ Creates a <a href="../../adapters/unfused.html" title="unfused"><tt class="computeroutput"><span class="identifier">unfused</span></tt></a> adapter for a given, + unary <a href="../../concepts/poly.html" title=" Polymorphic Function
+ Object">Polymorphic Function+ Object</a>. The usual <a href="../../../notes.html#fusion.notes.element_conversion"><span class="emphasis"><em>element
+ conversion</em></span></a> is applied to the target function. + </p>+<a name="fusion.functional.generation.functions.mk_unfused.synopsis"></a><h6>
+<a name="id631022"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.synopsis">Synopsis</a>
+ </h6>+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span> +<span class="keyword">inline</span> <span class="keyword">typename</span> <a href="../metafunctions/mk_unfused.html" title=" + make_unfused"><tt class="computeroutput"><span class="identifier">make_unfused</span></tt></a><span class="special"><</span><span class="identifier">F</span><span class="special">>::</span><span class="identifier">type</span> +<span class="identifier">make_unfused</span><span class="special">(</span><span class="identifier">F</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">f</span><span class="special">);</span>
+</pre>+<a name="fusion.functional.generation.functions.mk_unfused.parameters"></a><h6>
+<a name="id631173"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.parameters">Parameters</a>
+ </h6> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th><p> + Parameter + </p></th> +<th><p> + Requirement + </p></th> +<th><p> + Description + </p></th> +</tr></thead> +<tbody><tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">f</span></tt>
+ </p></td> +<td><p>+ Model of <a href="../../concepts/poly.html" title=" Polymorphic Function
+ Object">Polymorphic + Function Object</a> + </p></td> +<td><p> + The function to transform. + </p></td> +</tr></tbody> +</table></div>+<a name="fusion.functional.generation.functions.mk_unfused.expression_semantics"></a><h6>
+<a name="id631289"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.expression_semantics">Expression
+ Semantics</a> + </h6>+<pre class="programlisting"><span class="identifier">make_unfused</span><span class="special">(</span><span class="identifier">f</span><span class="special">);</span>
+</pre> +<p>+ <span class="bold"><b>Return type</b></span>: A specialization of <a href="../../adapters/unfused.html" title="unfused"><tt class="computeroutput"><span class="identifier">unfused</span></tt></a>.
+ </p> +<p>+ <span class="bold"><b>Semantics</b></span>: Returns a <a href="../../adapters/unfused.html" title="unfused"><tt class="computeroutput"><span class="identifier">unfused</span></tt></a> adapter for <tt class="computeroutput"><span class="identifier">f</span></tt>.
+ </p> +<a name="fusion.functional.generation.functions.mk_unfused.header"></a><h6> +<a name="id631410"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.header">Header</a>
+ </h6>+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">generation</span><span class="special">/</span><span class="identifier">make_unfused</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">make_unfused</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>+<a name="fusion.functional.generation.functions.mk_unfused.example"></a><h6>
+<a name="id631577"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.example">Example</a>
+ </h6>+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">fused_incrementer</span>
+<span class="special">{</span>+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Seq</span><span class="special">></span> + <span class="keyword">struct</span> <span class="identifier">result</span>
+ <span class="special">{</span>+ <span class="keyword">typedef</span> <span class="keyword">void</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span> ++ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Seq</span><span class="special">></span> + <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Seq</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">s</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>+ <a href="../../../algorithm/iteration/functions/for_each.html" title="for_each"><tt class="computeroutput"><span class="identifier">for_each</span></tt></a><span class="special">(</span><span class="identifier">s</span><span class="special">,++</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lambda</span><span class="special">::</span><span class="identifier">_1</span><span class="special">);</span>
+ <span class="special">}</span> +<span class="special">};</span> ++<span class="keyword">void</span> <span class="identifier">try_it</span><span class="special">()</span>
+<span class="special">{</span>+ <span class="keyword">int</span> <span class="identifier">a</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="keyword">char</span> <span class="identifier">b</span> <span class="special">=</span> <span class="char">'X'</span><span class="special">;</span> + <span class="identifier">make_unfused</span><span class="special">(</span><span class="identifier">fused_incrementer</span><span class="special">())(</span><span class="identifier">a</span><span class="special">,</span><span class="identifier">b</span><span class="special">);</span> + <span class="identifier">assert</span><span class="special">(</span><span class="identifier">a</span> <span class="special">==</span> <span class="number">3</span> <span class="special">&&</span> <span class="identifier">b</span> <span class="special">==</span> <span class="char">'Y'</span><span class="special">);</span>
+<span class="special">}</span> +</pre>+<a name="fusion.functional.generation.functions.mk_unfused.see_also"></a><h6>
+<a name="id632050"></a>+ <a href="mk_unfused.html#fusion.functional.generation.functions.mk_unfused.see_also">See
+ also</a> + </h6> +<div class="itemizedlist"><ul type="disc">+<li><a href="../../adapters/unfused.html" title="unfused"><tt class="computeroutput"><span class="identifier">unfused</span></tt></a></li> +<li><a href="../../../support/deduce.html" title="deduce"><tt class="computeroutput"><span class="identifier">deduce</span></tt></a></li>
+<li><a href="../metafunctions/mk_unfused.html" title="+ make_unfused"><tt class="computeroutput"><span class="identifier">make_unfused</span></tt></a></li>
+</ul></div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
+ Schwinger<p>+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="mk_fused_fobj.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../functions.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../metafunctions.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/fusion/doc/html/fusion/functional/generation/metafunctions/mk_unfused.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,86 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title> + make_unfused</title>+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">+<link rel="home" href="../../../../index.html" title="Chapter 1. Fusion 2.0">
+<link rel="up" href="../metafunctions.html" title="Metafunctions"> +<link rel="previous" href="mk_fused_fobj.html" title=" + make_fused_function_object"> +<link rel="next" href="../../../notes.html" title="Notes"> +</head>+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td> +<td align="center"><a href="../../../../../../../../index.html">Home</a></td> +<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> +<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
+</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="mk_fused_fobj.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../notes.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="section" lang="en"> +<div class="titlepage"> +<div><div><h5 class="title">+<a name="fusion.functional.generation.metafunctions.mk_unfused"></a><a href="mk_unfused.html" title="
+ make_unfused"> + make_unfused</a> +</h5></div></div> +<div></div> +</div>+<a name="fusion.functional.generation.metafunctions.mk_unfused.description"></a><h6>
+<a name="id633430"></a>+ <a href="mk_unfused.html#fusion.functional.generation.metafunctions.mk_unfused.description">Description</a>
+ </h6> +<p>+ Returns the result type of <a href="../functions/mk_unfused.html" title=" + make_unfused"><tt class="computeroutput"><span class="identifier">make_unfused</span></tt></a>.
+ </p>+<a name="fusion.functional.generation.metafunctions.mk_unfused.header"></a><h6>
+<a name="id633478"></a>+ <a href="mk_unfused.html#fusion.functional.generation.metafunctions.mk_unfused.header">Header</a>
+ </h6>+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">generation</span><span class="special">/</span><span class="identifier">make_unfused</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">make_unfused</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>+<a name="fusion.functional.generation.metafunctions.mk_unfused.synopsis"></a><h6>
+<a name="id633645"></a>+ <a href="mk_unfused.html#fusion.functional.generation.metafunctions.mk_unfused.synopsis">Synopsis</a>
+ </h6>+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">result_of</span>
+<span class="special">{</span>+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Function</span><span class="special">></span> + <span class="keyword">struct</span> <span class="identifier">make_unfused</span>
+ <span class="special">{</span>+ <span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span> +<span class="special">}</span> +</pre>+<a name="fusion.functional.generation.metafunctions.mk_unfused.see_also"></a><h6>
+<a name="id633775"></a>+ <a href="mk_unfused.html#fusion.functional.generation.metafunctions.mk_unfused.see_also">See
+ also</a> + </h6>+<div class="itemizedlist"><ul type="disc"><li><a href="../functions/mk_unfused.html" title=" + make_unfused"><tt class="computeroutput"><span class="identifier">make_unfused</span></tt></a></li></ul></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
+ Schwinger<p>+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="mk_fused_fobj.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../metafunctions.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../notes.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/fusion/doc/html/fusion/functional/invocation/limits.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,73 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Limits</title>+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1"> +<link rel="home" href="../../../index.html" title="Chapter 1. Fusion 2.0"> +<link rel="up" href="../invocation.html" title="Invocation"> +<link rel="previous" href="metafunctions/invoke_fobj.html" title=" + invoke_function_object"> +<link rel="next" href="../adapters.html" title=" Adapters"> +</head>+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> +<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
+</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="metafunctions/invoke_fobj.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../invocation.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../adapters.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="section" lang="en"> +<div class="titlepage"> +<div><div><h4 class="title">+<a name="fusion.functional.invocation.limits"></a><a href="limits.html" title="Limits">Limits</a>
+</h4></div></div> +<div></div> +</div> +<a name="fusion.functional.invocation.limits.header"></a><h5> +<a name="id617510"></a>+ <a href="limits.html#fusion.functional.invocation.limits.header">Header</a>
+ </h5>+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">functional</span><span class="special">/</span><span class="identifier">invocation</span><span class="special">/</span><span class="identifier">limits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre> +<a name="fusion.functional.invocation.limits.macros"></a><h5> +<a name="id617613"></a>+ <a href="limits.html#fusion.functional.invocation.limits.macros">Macros</a>
+ </h5> +<p>+ The following macros can be defined to change the maximum arity. The default
+ is 6. + </p> +<div class="itemizedlist"><ul type="disc"> +<li> + BOOST_FUSION_INVOKE_MAX_ARITY + </li> +<li> + BOOST_FUSION_INVOKE_PROCEDURE_MAX_ARITY + </li> +<li> + BOOST_FUSION_INVOKE_FUNCTION_OBJECT_MAX_ARITY + </li> +</ul></div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
+ Schwinger<p>+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="metafunctions/invoke_fobj.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../invocation.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../adapters.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/fusion/doc/html/fusion/view/nview.html Thu Nov 26 23:54:32 2009
@@ -0,0 +1,235 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>nview</title>+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1"> +<link rel="home" href="../../index.html" title="Chapter 1. Fusion 2.0"> +<link rel="up" href="../view.html" title="View"> +<link rel="previous" href="reverse_view.html" title="reverse_view"> +<link rel="next" href="../adapted.html" title="Adapted"> +</head>+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../../more/index.htm">More</a></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="reverse_view.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../view.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../adapted.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="section" lang="en"> +<div class="titlepage"> +<div><div><h3 class="title">+<a name="fusion.view.nview"></a><a href="nview.html" title="nview">nview</a>
+</h3></div></div> +<div></div> +</div> +<a name="fusion.view.nview.description"></a><h4> +<a name="id528240"></a> + <a href="nview.html#fusion.view.nview.description">Description</a> + </h4> +<p>+ <tt class="computeroutput"><span class="identifier">nview</span></tt> presents a view which + iterates over a given <a href="../sequence.html" title="Sequence">Sequence</a> in + a specified order. An <tt class="computeroutput"><span class="identifier">nview</span></tt> + is constructed from an arbitrary <a href="../sequence.html" title="Sequence">Sequence</a>
+ and a list of indicies specifying the elements to iterate over. + </p> +<a name="fusion.view.nview.header"></a><h4> +<a name="id528309"></a> + <a href="nview.html#fusion.view.nview.header">Header</a> + </h4>+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">view</span><span class="special">/</span><span class="identifier">nview</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">nview</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre> +<a name="fusion.view.nview.synopsis"></a><h4> +<a name="id528464"></a> + <a href="nview.html#fusion.view.nview.synopsis">Synopsis</a> + </h4>+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Indicies</span><span class="special">></span> +<span class="keyword">struct</span> <span class="identifier">nview</span><span class="special">;</span>
++<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sequence</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">I2</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="special">...></span> +<span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">nview</span><span class="special"><</span><span class="identifier">Sequence</span><span class="special">,</span> <span class="identifier">I1</span><span class="special">,</span> <span class="identifier">I2</span><span class="special">,</span> <span class="special">...>::</span><span class="identifier">type</span> +<span class="identifier">as_nview</span><span class="special">(</span><span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">s</span><span class="special">);</span>
+</pre> +<a name="fusion.view.nview.template_parameters"></a><h4> +<a name="id528750"></a>+ <a href="nview.html#fusion.view.nview.template_parameters">Template parameters</a>
+ </h4> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th><p> + Parameter + </p></th> +<th><p> + Description + </p></th> +<th><p> + Default + </p></th> +</tr></thead> +<tbody> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">Sequence</span></tt>
+ </p></td> +<td><p>+ An arbitrary Fusion <a href="../sequence/concepts/forward_sequence.html" title="Forward
+ Sequence">Forward + Sequence</a> + </p></td> +<td><p> + </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">Indicies</span></tt>
+ </p></td> +<td><p>+ A <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector_c</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="special">...></span></tt> holding the indicies defining
+ the required iteration order. + </p></td> +<td><p> + </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">I1</span></tt>, <tt class="computeroutput"><span class="identifier">I2</span></tt>, <tt class="computeroutput"><span class="identifier">I3</span></tt>...
+ </p></td> +<td><p> + A list of integers specifying the required iteration order. + </p></td> +<td><p>+ <tt class="computeroutput"><span class="identifier">INT_MAX</span></tt> for <tt class="computeroutput"><span class="identifier">I2</span></tt>, <tt class="computeroutput"><span class="identifier">I3</span></tt>...
+ </p></td> +</tr> +</tbody> +</table></div> +<a name="fusion.view.nview.model_of"></a><h4> +<a name="id529035"></a> + <a href="nview.html#fusion.view.nview.model_of">Model of</a> + </h4> +<div class="itemizedlist"><ul type="disc"><li> +<a href="../sequence/concepts/random_access_sequence.html" title="Random + Access Sequence">Random+ Access Sequence</a> (see <a href="../sequence/concepts.html#fusion.sequence.concepts.traversal">Sequence
+ Traversal Concept</a>) + </li></ul></div> +<div class="variablelist"> +<p class="title"><b>Notation</b></p> +<dl>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">NV</span></tt></span></dt>
+<dd><p>+ A <tt class="computeroutput"><span class="identifier">nview</span></tt> type
+ </p></dd>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">s</span></tt></span></dt>
+<dd><p>+ An instance of <tt class="computeroutput"><span class="identifier">Sequences</span></tt>
+ </p></dd>+<dt><span class="term"><tt class="computeroutput"><span class="identifier">nv1</span></tt>, + <tt class="computeroutput"><span class="identifier">nv2</span></tt></span></dt>
+<dd><p>+ Instances of <tt class="computeroutput"><span class="identifier">NV</span></tt>
+ </p></dd> +</dl> +</div> +<a name="fusion.view.nview.expression_semantics"></a><h4> +<a name="id529208"></a>+ <a href="nview.html#fusion.view.nview.expression_semantics">Expression Semantics</a>
+ </h4> +<p>+ Semantics of an expression is defined only where it differs from, or is not + defined in <a href="../sequence/concepts/random_access_sequence.html" title="Random
+ Access Sequence">Random + Access Sequence</a>. + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +</colgroup> +<thead><tr> +<th><p> + Expression + </p></th> +<th><p> + Semantics + </p></th> +</tr></thead> +<tbody> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">NV</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td> +<td><p>+ Creates an <tt class="computeroutput"><span class="identifier">nview</span></tt>
+ given a sequence and a list of indicies. + </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">NV</span><span class="special">(</span><span class="identifier">nv1</span><span class="special">)</span></tt>
+ </p></td> +<td><p>+ Copy constructs an <tt class="computeroutput"><span class="identifier">nview</span></tt> + from another <tt class="computeroutput"><span class="identifier">nview</span></tt>, + <tt class="computeroutput"><span class="identifier">nv1</span></tt>.
+ </p></td> +</tr> +<tr> +<td><p>+ <tt class="computeroutput"><span class="identifier">nv1</span> <span class="special">=</span>
+ <span class="identifier">nv2</span></tt> + </p></td> +<td><p>+ Assigns to an <tt class="computeroutput"><span class="identifier">nview</span></tt>, + <tt class="computeroutput"><span class="identifier">nv1</span></tt>, from another + <tt class="computeroutput"><span class="identifier">nview</span></tt>, <tt class="computeroutput"><span class="identifier">nv2</span></tt>.
+ </p></td> +</tr> +</tbody> +</table></div> +<p>+ The <tt class="computeroutput"><span class="identifier">nview</span></tt> internally stores + a Fusion <a href="../container/vector.html" title="vector"><tt class="computeroutput"><span class="identifier">vector</span></tt></a> + of references to the elements of the original Fusion <a href="../sequence.html" title="Sequence">Sequence</a>
+ </p> +<a name="fusion.view.nview.example"></a><h4> +<a name="id529549"></a> + <a href="nview.html#fusion.view.nview.example">Example</a> + </h4>+<pre class="programlisting"><span class="keyword">typedef</span> <a href="../container/vector.html" title="vector"><tt class="computeroutput"><span class="identifier">vector</span></tt></a><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span> +<span class="keyword">typedef</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector_c</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">0</span><span class="special">></span> <span class="identifier">indicies</span><span class="special">;</span>
++<span class="identifier">vec</span> <span class="identifier">v1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="char">'c'</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span>
++<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">nview</span><span class="special"><</span><span class="identifier">vec</span><span class="special">,</span> <span class="identifier">indicies</span><span class="special">>(</span><span class="identifier">v1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// (2.0 c 1 2.0 1) +</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">as_nview</span><span class="special"><</span><span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">0</span><span class="special">>(</span><span class="identifier">v1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// (2.0 c c 1)
+</span></pre> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
+ Schwinger<p>+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p> +</div></td> +</tr></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="reverse_view.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../view.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../adapted.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body> +</html> ======================================= --- /dev/null+++ /trunk/libs/property_tree/doc/images/ptree2code.png Thu Nov 26 23:54:32 2009
Binary file, no diff available. ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/custom_data_type.cpp Thu Nov 26 23:54:32 2009
@@ -0,0 +1,80 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2002-2006 Marcin Kalicinski +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
+ +// This example shows what need to be done to customize data_type of ptree. +//+// It creates my_ptree type, which is a basic_ptree having boost::any as its data
+// container (instead of std::string that standard ptree has). + +#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/info_parser.hpp> +#include <boost/property_tree/ini_parser.hpp> +#include <boost/property_tree/json_parser.hpp> +#include <boost/property_tree/xml_parser.hpp> +#include <boost/any.hpp> +#include <list> +#include <string> +#include <iostream> + +// Custom translator that works with boost::any instead of std::string +struct my_translator +{ + + // Custom extractor - converts data from boost::any to T + template<class Ptree, class T> + bool get_value(const Ptree &pt, T &value) const + { + value = boost::any_cast<T>(pt.data()); + return true; // Success + } + + // Custom inserter - converts data from T to boost::any + template<class Ptree, class T> + bool put_value(Ptree &pt, const T &value) const + { + pt.data() = value; + return true; + } + +}; + +int main() +{ + + using namespace boost::property_tree; + + // Property_tree with boost::any as data type + // Key comparison: std::less<std::string> + // Key type: std::string + // Path type: path + // Data type: boost::any + // Translator type: my_translator+ typedef basic_ptree<std::less<std::string>, std::string, path, boost::any, my_translator> my_ptree;
+ my_ptree pt; + + // Put/get int value + pt.put("int value", 3); + int int_value = pt.get<int>("int value"); + std::cout << "Int value: " << int_value << "\n"; + + // Put/get string value + pt.put<std::string>("string value", "foo bar"); + std::string string_value = pt.get<std::string>("string value"); + std::cout << "String value: " << string_value << "\n"; + + // Put/get list<int> value + int list_data[] = { 1, 2, 3, 4, 5 };+ pt.put<std::list<int> >("list value", std::list<int>(list_data, list_data + sizeof(list_data) / sizeof(*list_data)));
+ std::list<int> list_value = pt.get<std::list<int> >("list value"); + std::cout << "List value: ";+ for (std::list<int>::iterator it = list_value.begin(); it != list_value.end(); ++it)
+ std::cout << *it << ' '; + std::cout << '\n'; +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/debug_settings.cpp Thu Nov 26 23:54:32 2009
@@ -0,0 +1,109 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2002-2006 Marcin Kalicinski +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
+ +#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/xml_parser.hpp> +//#include <boost/foreach.hpp> +#include <string> +#include <set> +#include <exception> +#include <iostream> + +struct debug_settings +{ + std::string m_file; // log filename + int m_level; // debug level + std::set<std::string> m_modules; // modules where logging is enabled + void load(const std::string &filename); + void save(const std::string &filename); +}; + +void debug_settings::load(const std::string &filename) +{ + + // Create empty property tree object + using boost::property_tree::ptree; + ptree pt; + + // Load XML file and put its contents in property tree. + // No namespace qualification is needed, because of Koenig + // lookup on the second argument. If reading fails, exception + // is thrown. + read_xml(filename, pt); + + // Get filename and store it in m_file variable. Note that + // we specify a path to the value using notation where keys + // are separated with dots (different separator may be used + // if keys themselves contain dots). If debug.filename key is + // not found, exception is thrown. + m_file = pt.get<std::string>("debug.filename"); + + // Get debug level and store it in m_level variable. This is + // another version of get method: if debug.level key is not + // found, it will return default value (specified by second + // parameter) instead of throwing. Type of the value extracted + // is determined by type of second parameter, so we can simply + // write get(...) instead of get<int>(...). + m_level = pt.get("debug.level", 0); + + // Iterate over debug.modules section and store all found + // modules in m_modules set. get_child() function returns a + // reference to child at specified path; if there is no such + // child, it throws. Property tree iterator can be used in + // the same way as standard container iterator. Category + // is bidirectional_iterator. + //BOOST_FOREACH(ptree::value_type &v, pt.get_child("debug.modules")) + // m_modules.insert(v.second.data()); + +} + +void debug_settings::save(const std::string &filename) +{ + + // Create empty property tree object + using boost::property_tree::ptree; + ptree pt; + + // Put log filename in property tree + pt.put("debug.filename", m_file); + + // Put debug level in property tree + pt.put("debug.level", m_level); + + // Iterate over modules in set and put them in property + // tree. Note that put function places new key at the + // end of list of keys. This is fine in most of the + // situations. If you want to place item at some other + // place (i.e. at front or somewhere in the middle), + // this can be achieved using combination of insert + // and put_value functions + //BOOST_FOREACH(const std::string &name, m_modules) + // pt.put("debug.modules.module", name, true); + + // Write property tree to XML file + write_xml(filename, pt); + +} + +int main() +{ + try + { + debug_settings ds; + ds.load("debug_settings.xml"); + ds.save("debug_settings_out.xml"); + std::cout << "Success\n"; + } + catch (std::exception &e) + { + std::cout << "Error: " << e.what() << "\n"; + } + return 0; +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/debug_settings.xml Thu Nov 26 23:54:32 2009
@@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2006 Marcin Kalicinski +Distributed under the Boost Software License, Version 1.0. +See http://www.boost.org/LICENSE_1_0.txt +--> +<debug> + <filename>debug.log</filename> + <modules> + <module>Finance</module> + <module>Admin</module> + <module>HR</module> + </modules> + <level>2</level> +</debug> ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/empty_ptree_trick.cpp Thu Nov 26 23:54:32 2009
@@ -0,0 +1,71 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2002-2006 Marcin Kalicinski +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
+ +#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/info_parser.hpp> +#include <iostream> +#include <iomanip> +#include <string> + +using namespace boost::property_tree; ++// Process settings using empty ptree trick. Note that it is considerably simpler
+// than version which does not use the "trick" +void process_settings(const std::string &filename) +{ + ptree pt; + read_info(filename, pt); + const ptree &settings = pt.get_child("settings", empty_ptree<ptree>()); + std::cout << "\n Processing " << filename << std::endl;+ std::cout << " Setting 1 is " << settings.get("setting1", 0) << std::endl; + std::cout << " Setting 2 is " << settings.get("setting2", 0.0) << std::endl; + std::cout << " Setting 3 is " << settings.get("setting3", "default") << std::endl;
+} ++// Process settings not using empty ptree trick. This one must duplicate much of the code.
+void process_settings_without_trick(const std::string &filename) +{ + ptree pt; + read_info(filename, pt);+ if (boost::optional<ptree &> settings = pt.get_child_optional("settings"))
+ { + std::cout << "\n Processing " << filename << std::endl;+ std::cout << " Setting 1 is " << settings.get().get("setting1", 0) << std::endl; + std::cout << " Setting 2 is " << settings.get().get("setting2", 0.0) << std::endl; + std::cout << " Setting 3 is " << settings.get().get("setting3", "default") << std::endl;
+ } + else + { + std::cout << "\n Processing " << filename << std::endl; + std::cout << " Setting 1 is " << 0 << std::endl; + std::cout << " Setting 2 is " << 0.0 << std::endl; + std::cout << " Setting 3 is " << "default" << std::endl; + } +} + +int main() +{ + try + { + std::cout << "Processing settings with empty-ptree-trick:\n"; + process_settings("settings_fully-existent.info"); + process_settings("settings_partially-existent.info"); + process_settings("settings_non-existent.info"); + std::cout << "\nProcessing settings without empty-ptree-trick:\n"; + process_settings_without_trick("settings_fully-existent.info"); + process_settings_without_trick("settings_partially-existent.info"); + process_settings_without_trick("settings_non-existent.info"); + } + catch (std::exception &e) + { + std::cout << "Error: " << e.what() << "\n"; + } + return 0; +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/info_grammar_spirit.cpp Thu Nov 26 23:54:32 2009
@@ -0,0 +1,152 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2002-2006 Marcin Kalicinski +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
++/* This is grammar of INFO file format written in form of boost::spirit rules. + For simplicity, it does not parse #include directive. Note that INFO parser
+ included in property_tree library does not use Spirit. +*/ + +//#define BOOST_SPIRIT_DEBUG // uncomment to enable debug output +#include <boost/spirit.hpp> + +struct info_grammar: public boost::spirit::grammar<info_grammar> +{ + + template<class Scanner> + struct definition + { ++ boost::spirit::rule<typename boost::spirit::lexeme_scanner<Scanner>::type> chr, qchr, escape_seq; + boost::spirit::rule<Scanner> string, qstring, cstring, key, value, entry, info;
+ + definition(const info_grammar &self) + { + + using namespace boost::spirit; + + escape_seq = chset_p("0abfnrtv\"\'\\");+ chr = (anychar_p - space_p - '\\' - '{' - '}' - '#' - '"') | ('\\' >> escape_seq);
+ qchr = (anychar_p - '"' - '\n' - '\\') | ('\\' >> escape_seq); + string = lexeme_d[+chr]; + qstring = lexeme_d['"' >> *qchr >> '"']; + cstring = lexeme_d['"' >> *qchr >> '"' >> '\\']; + key = string | qstring; + value = string | qstring | (+cstring >> qstring) | eps_p; + entry = key >> value >> !('{' >> *entry >> '}'); + info = *entry >> end_p; + + // Debug nodes + BOOST_SPIRIT_DEBUG_NODE(escape_seq); + BOOST_SPIRIT_DEBUG_NODE(chr); + BOOST_SPIRIT_DEBUG_NODE(qchr); + BOOST_SPIRIT_DEBUG_NODE(string); + BOOST_SPIRIT_DEBUG_NODE(qstring); + BOOST_SPIRIT_DEBUG_NODE(key); + BOOST_SPIRIT_DEBUG_NODE(value); + BOOST_SPIRIT_DEBUG_NODE(entry); + BOOST_SPIRIT_DEBUG_NODE(info); + + } + + const boost::spirit::rule<Scanner> &start() const + { + return info; + } + + }; +}; + +void info_parse(const char *s) +{ + + using namespace boost::spirit; + + // Parse and display result + info_grammar g; + parse_info<const char *> pi = parse(s, g, space_p | comment_p(";"));+ std::cout << "Parse result: " << (pi.hit ? "Success" : "Failure") << "\n";
+ +} + +int main() +{ + + // Sample data 1 + const char *data1 = + "\n" + "key1 data1\n" + "{\n" + "\tkey data\n" + "}\n" + "key2 \"data2 \" {\n" + "\tkey data\n" + "}\n" + "key3 \"data\"\n" + "\t \"3\" {\n" + "\tkey data\n" + "}\n" + "\n" + "\"key4\" data4\n" + "{\n" + "\tkey data\n" + "}\n" + "\"key.5\" \"data.5\" { \n" + "\tkey data \n" + "}\n" + "\"key6\" \"data\"\n" + "\t \"6\" {\n" + "\tkey data\n" + "}\n" + " \n" + "key1 data1\n" + "{\n" + "\tkey data\n" + "}\n" + "key2 \"data2 \" {\n" + "\tkey data\n" + "}\n" + "key3 \"data\"\n" + "\t \"3\" {\n" + "\tkey data\n" + "}\n" + "\n" + "\"key4\" data4\n" + "{\n" + "\tkey data\n" + "}\n" + "\"key.5\" \"data.5\" {\n" + "\tkey data\n" + "}\n" + "\"key6\" \"data\"\n" + "\t \"6\" {\n" + "\tkey data\n" + "}\n" + "\\\\key\\t7 data7\\n\\\"data7\\\"\n" + "{\n" + "\tkey data\n" + "}\n" + "\"\\\\key\\t8\" \"data8\\n\\\"data8\\\"\"\n" + "{\n" + "\tkey data\n" + "}\n" + "\n"; + + // Sample data 2 + const char *data2 = + "key1\n" + "key2\n" + "key3\n" + "key4\n"; + + // Parse sample data + info_parse(data1); + info_parse(data2); + +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/settings_fully-existent.info Thu Nov 26 23:54:32 2009
@@ -0,0 +1,6 @@ +settings +{ + setting1 15 + setting2 9.876 + setting3 Alice in Wonderland +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/settings_non-existent.info Thu Nov 26 23:54:32 2009
@@ -0,0 +1,6 @@ +;settings // non-existent +;{ +; setting1 15 +; setting2 9.876 +; setting3 Alice in Wonderland +;} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/settings_partially-existent.info Thu Nov 26 23:54:32 2009
@@ -0,0 +1,6 @@ +settings +{ + setting1 15 + ;setting2 9.876 // non-existent + ;setting3 Alice in Wonderland // non-existent +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/examples/speed_test.cpp Thu Nov 26 23:54:32 2009
@@ -0,0 +1,130 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2002-2006 Marcin Kalicinski +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
+ +#define _HAS_ITERATOR_DEBUGGING 0 + +#include <boost/property_tree/ptree.hpp> +#include <boost/format.hpp> +#include <boost/shared_array.hpp> +#include <iostream> +#include <ctime> +#include <algorithm> + +using namespace std; +using namespace boost; +using namespace boost::property_tree; + +string dummy; +vector<string> keys; +vector<string> shuffled_keys; + +void prepare_keys(int size) +{ + // Prepare keys + keys.clear(); + for (int i = 0; i < size; ++i) + keys.push_back((format("%d") % i).str()); + shuffled_keys = keys; + srand(0); + random_shuffle(shuffled_keys.begin(), shuffled_keys.end()); +} + +void clock_push_back(int size) +{ + prepare_keys(size); + int max_repeats = 1000000 / size; + shared_array<ptree> pt_array(new ptree[max_repeats]); + + int n = 0; + clock_t t1 = clock(), t2; + do + { + if (n >= max_repeats) + break; + ptree &pt = pt_array[n]; + for (int i = 0; i < size; ++i) + pt.push_back(ptree::value_type(shuffled_keys[i], ptree())); + t2 = clock(); + ++n; + } while (t2 - t1 < CLOCKS_PER_SEC); ++ cout << " push_back (" << size << "): " << double(t2 - t1) / CLOCKS_PER_SEC / n * 1000 << " ms\n";
+ +} + +void clock_find(int size) +{ + prepare_keys(size); + + ptree pt; + for (int i = 0; i < size; ++i) + pt.push_back(ptree::value_type(keys[i], ptree("data"))); + + int n = 0; + clock_t t1 = clock(), t2; + do + { + for (int i = 0; i < size; ++i) + pt.find(shuffled_keys[i]); + t2 = clock(); + ++n; + } while (t2 - t1 < CLOCKS_PER_SEC); ++ cout << " find (" << size << "): " << double(t2 - t1) / CLOCKS_PER_SEC / n * 1000 << " ms\n";
+ +} + +void clock_erase(int size) +{ + prepare_keys(size); + + int max_repeats = 100000 / size; + shared_array<ptree> pt_array(new ptree[max_repeats]); + + ptree pt; + for (int n = 0; n < max_repeats; ++n) + for (int i = 0; i < size; ++i)+ pt_array[n].push_back(ptree::value_type(keys[i], ptree("data")));
+ + int n = 0; + clock_t t1 = clock(), t2; + do + { + if (n >= max_repeats) + break; + ptree &pt = pt_array[n]; + for (int i = 0; i < size; ++i) + pt.erase(shuffled_keys[i]); + t2 = clock(); + ++n; + } while (t2 - t1 < CLOCKS_PER_SEC); ++ cout << " erase (" << size << "): " << double(t2 - t1) / CLOCKS_PER_SEC / n * 1000 << " ms\n";
+} + +int main() +{ + + // push_back + clock_push_back(10); + clock_push_back(100); + clock_push_back(1000); + + // erase + clock_erase(10); + clock_erase(100); + clock_erase(1000); + + // find + clock_find(10); + clock_find(100); + clock_find(1000); + +} ======================================= --- /dev/null +++ /trunk/libs/property_tree/index.html Thu Nov 26 23:54:32 2009 @@ -0,0 +1,14 @@ +<html> +<head>+<meta http-equiv="refresh" content="0; URL=../../doc/html/property_tree.html">
+</head> +<body> +Automatic redirection failed, please go to the+<a href="../../doc/html/property_tree.html">Boost.PropertyTree documentation</a>.
+<p>Copyright Sebastian Redl 2009</p>+<p>Distributed under the Boost Software License, Version 1.0. (See accompanying file
+<a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at+<a href="http://www.boost.org/LICENSE_1_0.txt";>www.boost.org/LICENSE_1_0.txt</a>).
+</p> +</body> +</html> ======================================= --- /dev/null +++ /trunk/libs/property_tree/test/Jamfile.v2 Thu Nov 26 23:54:32 2009 @@ -0,0 +1,21 @@ +# Boost.PropertyTree +# +# Copyright (c) 2009 Sebastian Redl +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +# bring in rules for testing +import testing ; + +test-suite "property_tree"+ : [ run test_property_tree.cpp /boost/serialization//boost_serialization ]
+ [ run test_info_parser.cpp ] + [ run test_json_parser.cpp ] + [ run test_ini_parser.cpp ] + [ run test_xml_parser_rapidxml.cpp ] + + [ run test_multi_module1.cpp test_multi_module2.cpp ] + #[ run test_registry_parser.cpp ] +; ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/Makefile Thu Nov 26 23:54:32 2009
@@ -0,0 +1,13 @@ +# Boost.PropertyTree +# +# Copyright (c) 2009 Sebastian Redl +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +all: + +clean: + rm -f *_dbg.exe + rm -f *_rel.exe ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/Makefile-Common Thu Nov 26 23:54:32 2009
@@ -0,0 +1,80 @@ +CCINCLUDE=-I../../../../../boost -I../../../.. + +all: test + +-include Makefile + +test: build + ./ptree_dbg.exe + ./ptree_rel.exe + ./cmdline_dbg.exe + ./cmdline_rel.exe + ./ini_dbg.exe + ./ini_rel.exe + ./info_dbg.exe + ./info_rel.exe + ./json_dbg.exe + ./json_rel.exe + ./xml_dbg.exe + ./xml_rel.exe + ./multi_module_dbg.exe + ./multi_module_rel.exe + ./example_custom_data_type_dbg.exe + ./example_custom_data_type_rel.exe + ./example_debug_settings_dbg.exe + ./example_debug_settings_rel.exe + ./example_empty_ptree_trick_dbg.exe + ./example_empty_ptree_trick_rel.exe + ./example_info_grammar_spirit_dbg.exe + ./example_info_grammar_spirit_rel.exe + +build: debug release ++debug: ptree_dbg.exe cmdline_dbg.exe ini_dbg.exe info_dbg.exe json_dbg.exe xml_dbg.exe multi_module_dbg.exe example_custom_data_type_dbg.exe example_debug_settings_dbg.exe example_empty_ptree_trick_dbg.exe example_info_grammar_spirit_dbg.exe
++release: ptree_rel.exe cmdline_rel.exe ini_rel.exe info_rel.exe json_rel.exe xml_rel.exe multi_module_rel.exe example_custom_data_type_rel.exe example_debug_settings_rel.exe example_empty_ptree_trick_rel.exe example_info_grammar_spirit_rel.exe
+ +ptree_dbg.exe: ../test_property_tree.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +ptree_rel.exe: ../test_property_tree.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +cmdline_dbg.exe: ../test_cmdline_parser.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +cmdline_rel.exe: ../test_cmdline_parser.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +ini_dbg.exe: ../test_ini_parser.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +ini_rel.exe: ../test_ini_parser.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +info_dbg.exe: ../test_info_parser.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +info_rel.exe: ../test_info_parser.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +json_dbg.exe: ../test_json_parser.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +json_rel.exe: ../test_json_parser.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +xml_dbg.exe: ../test_xml_parser_spirit.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +xml_rel.exe: ../test_xml_parser_spirit.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +multi_module_dbg.exe: ../test_multi_module1.cpp ../test_multi_module2.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $? -o $@ $(EXTLIBS) +multi_module_rel.exe: ../test_multi_module1.cpp ../test_multi_module2.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $? -o $@ $(EXTLIBS) +example_custom_data_type_dbg.exe: ../../examples/custom_data_type.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_custom_data_type_rel.exe: ../../examples/custom_data_type.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_debug_settings_dbg.exe: ../../examples/debug_settings.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_debug_settings_rel.exe: ../../examples/debug_settings.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_empty_ptree_trick_dbg.exe: ../../examples/empty_ptree_trick.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_empty_ptree_trick_rel.exe: ../../examples/empty_ptree_trick.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_info_grammar_spirit_dbg.exe: ../../examples/info_grammar_spirit.cpp + $(CC) $(CFLAGSDBG) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) +example_info_grammar_spirit_rel.exe: ../../examples/info_grammar_spirit.cpp + $(CC) $(CFLAGSREL) $(CCINCLUDE) $(EXTINCLUDE) $< -o $@ $(EXTLIBS) ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/debug_settings.xml Thu Nov 26 23:54:32 2009
@@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2006 Marcin Kalicinski +Distributed under the Boost Software License, Version 1.0. +See http://www.boost.org/LICENSE_1_0.txt +--> +<debug> + <filename>debug.log</filename> + <modules> + <module>Finance</module> + <module>Admin</module> + <module>HR</module> + </modules> + <level>2</level> +</debug> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/gcc.mak Thu Nov 26 23:54:32 2009
@@ -0,0 +1,14 @@ +# Boost.PropertyTree +# +# Copyright (c) 2009 Sebastian Redl +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +CC=g++ +CFLAGSREL=-Wall -pedantic -ftemplate-depth-255 -O3 +CFLAGSDBG=-Wall -pedantic -ftemplate-depth-255 -O0 +INCLUDE=-I../../../../../boost -I../../../.. + +-include Makefile-Common ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/icc.mak Thu Nov 26 23:54:32 2009
@@ -0,0 +1,14 @@ +# Boost.PropertyTree +# +# Copyright (c) 2009 Sebastian Redl +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +CC=icc +CFLAGSREL=-O3 -static +CFLAGSDBG=-O0 -static +INCLUDE=-I../../../../../boost -I../../../.. + +-include Makefile-Common ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/sandbox.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,330 @@ +<?xml version="1.0" encoding="windows-1250"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="sandbox" + ProjectGUID="{85FA9AEF-966B-4D93-9431-F507754B0431}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="1" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + RuntimeTypeInfo="false" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="false" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="false" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="detail" + > + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\exceptions_implementation.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\file_parser_error.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\info_parser_error.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\info_parser_read.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\info_parser_utils.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\info_parser_write.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\json_parser_error.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\json_parser_read.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\json_parser_write.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\path_implementation.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\ptree_implementation.hpp"
+ > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\detail\ptree_utils.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\detail\pugxml.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\detail\rapidxml.hpp" + > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\translator_implementation.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_error.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_flags.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_read_pugixml.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_read_pugxml.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_read_rapidxml.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_read_spirit.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_read_tinyxml.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_utils.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_write.hpp"
+ > + </File> + <File+ RelativePath="..\..\..\..\boost\property_tree\detail\xml_parser_writer_settings.hpp"
+ > + </File> + </Filter> + <File + RelativePath="..\..\..\..\boost\property_tree\cmdline_parser.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\info_parser.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\ini_parser.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\json_parser.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\ptree.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\ptree_fwd.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\ptree_serialization.hpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\registry_parser.hpp" + > + </File> + <File + RelativePath="..\sandbox.cpp" + > + </File> + <File + RelativePath="..\..\..\..\boost\property_tree\xml_parser.hpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/settings_fully-existent.info Thu Nov 26 23:54:32 2009
@@ -0,0 +1,6 @@ +settings +{ + setting1 15 + setting2 9.876 + setting3 Alice in Wonderland +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/settings_non-existent.info Thu Nov 26 23:54:32 2009
@@ -0,0 +1,6 @@ +;settings // non-existent +;{ +; setting1 15 +; setting2 9.876 +; setting3 Alice in Wonderland +;} ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/settings_partially-existent.info Thu Nov 26 23:54:32 2009
@@ -0,0 +1,6 @@ +settings +{ + setting1 15 + ;setting2 9.876 // non-existent + ;setting3 Alice in Wonderland // non-existent +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_example_custom_data_type.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="test_example_custom_data_type" + ProjectGUID="{87516DC2-FDF4-4ECC-8713-D6D955100D86}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\..\examples\custom_data_type.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_example_debug_settings.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="test_example_debug_settings" + ProjectGUID="{16D41CBD-3C58-4631-B4D4-29A42E47D619}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\..\examples\debug_settings.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_example_empty_ptree_trick.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="test_example_empty_ptree_trick" + ProjectGUID="{A242FE56-D039-4CEC-9FD3-AACABEA684C9}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\..\examples\empty_ptree_trick.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_info_grammar_spirit.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="test_info_grammar_spirit" + ProjectGUID="{305891FE-2572-4F6A-A52B-3A1964A3CA76}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\..\examples\info_grammar_spirit.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_info_parser.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="test_info_parser" + ProjectGUID="{03A81E3E-895A-4E1D-A42C-EB155A2868E1}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\test_info_parser.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_ini_parser.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="test_ini_parser" + ProjectGUID="{20D5FE87-9284-4B1A-8505-7B913474C4AA}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\test_ini_parser.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_json_parser.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="windows-1250"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="test_json_parser" + ProjectGUID="{CDDC4697-F51B-4B9A-A029-C2EB5271848F}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\test_json_parser.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_multi_module.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,193 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="test_multi_module" + ProjectGUID="{4B88BAC5-5CA8-403A-83E7-0F758405AB2D}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\test_multi_module1.cpp" + > + </File> + <File + RelativePath="..\test_multi_module2.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_property_tree.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="test_property_tree" + ProjectGUID="{DB0C18AA-BBA4-4DBF-A76E-92B642E45A74}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + TreatWChar_tAsBuiltInType="true" + RuntimeTypeInfo="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="2" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\test_property_tree.cpp" + > + </File> + <File + RelativePath="..\test_property_tree.hpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/test_xml_parser.vcproj Thu Nov 26 23:54:32 2009
@@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="windows-1250"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="test_xml_parser" + ProjectGUID="{02D60AE7-3C50-45BB-AB12-ECCB22F1B9AF}" + RootNamespace="test_property_tree" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + ExceptionHandling="2" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectName)/$(ConfigurationName)" + IntermediateDirectory="$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="2" + EnableIntrinsicFunctions="true" + FavorSizeOrSpeed="1" + OmitFramePointers="true" + WholeProgramOptimization="false" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + ExceptionHandling="2" + RuntimeLibrary="0" + BufferSecurityCheck="false" + TreatWChar_tAsBuiltInType="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath="..\test_xml_parser_common.hpp" + > + </File> + <File + RelativePath="..\test_xml_parser_rapidxml.cpp" + > + </File> + <File + RelativePath="..\xml_parser_test_data.hpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/tests.sln Thu Nov 26 23:54:32 2009
@@ -0,0 +1,80 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_property_tree", "test_property_tree.vcproj", "{DB0C18AA-BBA4-4DBF-A76E-92B642E45A74}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_ini_parser", "test_ini_parser.vcproj", "{20D5FE87-9284-4B1A-8505-7B913474C4AA}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_info_parser", "test_info_parser.vcproj", "{03A81E3E-895A-4E1D-A42C-EB155A2868E1}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_xml_parser", "test_xml_parser.vcproj", "{02D60AE7-3C50-45BB-AB12-ECCB22F1B9AF}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sandbox", "sandbox.vcproj", "{85FA9AEF-966B-4D93-9431-F507754B0431}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_json_parser", "test_json_parser.vcproj", "{CDDC4697-F51B-4B9A-A029-C2EB5271848F}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_example_custom_data_type", "test_example_custom_data_type.vcproj", "{87516DC2-FDF4-4ECC-8713-D6D955100D86}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_example_debug_settings", "test_example_debug_settings.vcproj", "{16D41CBD-3C58-4631-B4D4-29A42E47D619}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_example_empty_ptree_trick", "test_example_empty_ptree_trick.vcproj", "{A242FE56-D039-4CEC-9FD3-AACABEA684C9}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_info_grammar_spirit", "test_info_grammar_spirit.vcproj", "{305891FE-2572-4F6A-A52B-3A1964A3CA76}"
+EndProject+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_multi_module", "test_multi_module.vcproj", "{4B88BAC5-5CA8-403A-83E7-0F758405AB2D}"
+EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution+ {DB0C18AA-BBA4-4DBF-A76E-92B642E45A74}.Debug|Win32.ActiveCfg = Debug| Win32
+ {DB0C18AA-BBA4-4DBF-A76E-92B642E45A74}.Debug|Win32.Build.0 = Debug|Win32+ {DB0C18AA-BBA4-4DBF-A76E-92B642E45A74}.Release|Win32.ActiveCfg = Release| Win32 + {DB0C18AA-BBA4-4DBF-A76E-92B642E45A74}.Release|Win32.Build.0 = Release| Win32 + {20D5FE87-9284-4B1A-8505-7B913474C4AA}.Debug|Win32.ActiveCfg = Debug| Win32
+ {20D5FE87-9284-4B1A-8505-7B913474C4AA}.Debug|Win32.Build.0 = Debug|Win32+ {20D5FE87-9284-4B1A-8505-7B913474C4AA}.Release|Win32.ActiveCfg = Release| Win32 + {20D5FE87-9284-4B1A-8505-7B913474C4AA}.Release|Win32.Build.0 = Release| Win32 + {03A81E3E-895A-4E1D-A42C-EB155A2868E1}.Debug|Win32.ActiveCfg = Debug| Win32
+ {03A81E3E-895A-4E1D-A42C-EB155A2868E1}.Debug|Win32.Build.0 = Debug|Win32+ {03A81E3E-895A-4E1D-A42C-EB155A2868E1}.Release|Win32.ActiveCfg = Release| Win32 + {03A81E3E-895A-4E1D-A42C-EB155A2868E1}.Release|Win32.Build.0 = Release| Win32 + {02D60AE7-3C50-45BB-AB12-ECCB22F1B9AF}.Debug|Win32.ActiveCfg = Debug| Win32
+ {02D60AE7-3C50-45BB-AB12-ECCB22F1B9AF}.Debug|Win32.Build.0 = Debug|Win32+ {02D60AE7-3C50-45BB-AB12-ECCB22F1B9AF}.Release|Win32.ActiveCfg = Release| Win32 + {02D60AE7-3C50-45BB-AB12-ECCB22F1B9AF}.Release|Win32.Build.0 = Release| Win32 + {85FA9AEF-966B-4D93-9431-F507754B0431}.Debug|Win32.ActiveCfg = Debug| Win32
+ {85FA9AEF-966B-4D93-9431-F507754B0431}.Debug|Win32.Build.0 = Debug|Win32+ {85FA9AEF-966B-4D93-9431-F507754B0431}.Release|Win32.ActiveCfg = Release| Win32 + {85FA9AEF-966B-4D93-9431-F507754B0431}.Release|Win32.Build.0 = Release| Win32 + {CDDC4697-F51B-4B9A-A029-C2EB5271848F}.Debug|Win32.ActiveCfg = Debug| Win32
+ {CDDC4697-F51B-4B9A-A029-C2EB5271848F}.Debug|Win32.Build.0 = Debug|Win32+ {CDDC4697-F51B-4B9A-A029-C2EB5271848F}.Release|Win32.ActiveCfg = Release| Win32 + {CDDC4697-F51B-4B9A-A029-C2EB5271848F}.Release|Win32.Build.0 = Release| Win32 + {87516DC2-FDF4-4ECC-8713-D6D955100D86}.Debug|Win32.ActiveCfg = Debug| Win32
+ {87516DC2-FDF4-4ECC-8713-D6D955100D86}.Debug|Win32.Build.0 = Debug|Win32+ {87516DC2-FDF4-4ECC-8713-D6D955100D86}.Release|Win32.ActiveCfg = Release| Win32 + {87516DC2-FDF4-4ECC-8713-D6D955100D86}.Release|Win32.Build.0 = Release| Win32 + {16D41CBD-3C58-4631-B4D4-29A42E47D619}.Debug|Win32.ActiveCfg = Debug| Win32
+ {16D41CBD-3C58-4631-B4D4-29A42E47D619}.Debug|Win32.Build.0 = Debug|Win32+ {16D41CBD-3C58-4631-B4D4-29A42E47D619}.Release|Win32.ActiveCfg = Release| Win32 + {16D41CBD-3C58-4631-B4D4-29A42E47D619}.Release|Win32.Build.0 = Release| Win32 + {A242FE56-D039-4CEC-9FD3-AACABEA684C9}.Debug|Win32.ActiveCfg = Debug| Win32
+ {A242FE56-D039-4CEC-9FD3-AACABEA684C9}.Debug|Win32.Build.0 = Debug|Win32+ {A242FE56-D039-4CEC-9FD3-AACABEA684C9}.Release|Win32.ActiveCfg = Release| Win32 + {A242FE56-D039-4CEC-9FD3-AACABEA684C9}.Release|Win32.Build.0 = Release| Win32 + {305891FE-2572-4F6A-A52B-3A1964A3CA76}.Debug|Win32.ActiveCfg = Debug| Win32
+ {305891FE-2572-4F6A-A52B-3A1964A3CA76}.Debug|Win32.Build.0 = Debug|Win32+ {305891FE-2572-4F6A-A52B-3A1964A3CA76}.Release|Win32.ActiveCfg = Release| Win32 + {305891FE-2572-4F6A-A52B-3A1964A3CA76}.Release|Win32.Build.0 = Release| Win32 + {4B88BAC5-5CA8-403A-83E7-0F758405AB2D}.Debug|Win32.ActiveCfg = Debug| Win32
+ {4B88BAC5-5CA8-403A-83E7-0F758405AB2D}.Debug|Win32.Build.0 = Debug|Win32+ {4B88BAC5-5CA8-403A-83E7-0F758405AB2D}.Release|Win32.ActiveCfg = Release| Win32 + {4B88BAC5-5CA8-403A-83E7-0F758405AB2D}.Release|Win32.Build.0 = Release| Win32
+ EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/custom-build/vc.mak Thu Nov 26 23:54:32 2009
@@ -0,0 +1,15 @@ +# Boost.PropertyTree +# +# Copyright (c) 2009 Sebastian Redl +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +CC=cl +CFLAGSREL=-O2 -Ox -EHsc -DBOOST_DISABLE_WIN32 -nologo +CFLAGSDBG=-EHsc -DBOOST_DISABLE_WIN32 -nologo +EXTINCLUDE= +EXTLIBS= + +-include Makefile-Common ======================================= --- /dev/null +++ /trunk/libs/property_tree/test/sandbox.cpp Thu Nov 26 23:54:32 2009 @@ -0,0 +1,22 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2009 Sebastian Redl +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
+ +#define _CRT_SECURE_NO_DEPRECATE +#include <boost/property_tree/xml_parser.hpp> +#include <boost/property_tree/info_parser.hpp> +#include <iostream> + +int main() +{ + using namespace boost::property_tree; + ptree pt; + read_xml("simple_all.xml", pt); + write_info(std::cout, pt); +} ======================================= --- /dev/null+++ /trunk/libs/property_tree/test/test_info_parser.cpp Thu Nov 26 23:54:32 2009
@@ -0,0 +1,249 @@+// ----------------------------------------------------------------------------
+// Copyright (C) 2002-2006 Marcin Kalicinski +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see www.boost.org+// ----------------------------------------------------------------------------
+ +#include "test_utils.hpp" +#include <boost/property_tree/info_parser.hpp> + +/////////////////////////////////////////////////////////////////////////////// +// Test data + +const char *ok_data_1 = + ";Test file for info_parser\n" + "\n" + "key1 data1\n" + "{\n" + "\tkey data\n" + "}\n" + "#include \"testok1_inc.info\"\n" + "key2 \"data2 \" {\n" + "\tkey data\n" + "}\n" + "#\tinclude \"testok1_inc.info\"\n" + "key3 \"data\"\n" + "\t \"3\" {\n" + "\tkey data\n" + "}\n" + "\t#include \"testok1_inc.info\"\n" + "\n" + "\"key4\" data4\n" + "{\n" + "\tkey data\n" + "}\n" + "#include \"testok1_inc.info\"\n" + "\"key.5\" \"data.5\" { \n" + "\tkey data \n" + "}\n" + "#\tinclude \"testok1_inc.info\"\n" + "\"key6\" \"data\"\n" + "\t \"6\" {\n" + "\tkey data\n" + "}\n" + "\t#include \"testok1_inc.info\"\n" + " \n" + "key1 data1; comment\n" + "{; comment\n" + "\tkey data; comment\n" + "}; comment\n" + "#include \"testok1_inc.info\"\n" + "key2 \"data2 \" {; comment\n" + "\tkey data; comment\n" + "}; comment\n" + "#\tinclude \"testok1_inc.info\"\n" + "key3 \"data\"; comment\n" + "\t \"3\" {; comment\n" + "\tkey data; comment\n" + "}; comment\n" + "\t#include \"testok1_inc.info\"\n" + "\n" + "\"key4\" data4; comment\n" + "{; comment\n" + "\tkey data; comment\n" + "}; comment\n" + "#include \"testok1_inc.info\"\n" + "\"key.5\" \"data.5\" {; comment\n" + "\tkey data; comment\n" + "}; comment\n" + "#\tinclude \"testok1_inc.info\"\n" + "\"key6\" \"data\"; comment\n" + "\t \"6\" {; comment\n" + "\tkey data; comment\n" + "}; comment\n" + "\t#include \"testok1_inc.info\"\n" + "\\\\key\\t7 data7\\n\\\"data7\\\"\n" + "{\n" + "\tkey data\n" + "}\n" + "\"\\\\key\\t8\" \"data8\\n\\\"data8\\\"\"\n" + "{\n" + "\tkey data\n" + "}\n" + "\n"; + +const char *ok_data_1_inc = + ";Test file for info_parser\n" + "\n" + "inc_key inc_data ;;; comment\\"; + +const char *ok_data_2 = + ""; + +const char *ok_data_3 = + "key1 \"\"\n" + "key2 \"\"\n" + "key3 \"\"\n" + "key4 \"\"\n"; + +const char *ok_data_4 = + "key1 data key2 data"; + +const char *ok_data_5 = + "key { key \"\" key \"\" }\n"; + +const char *ok_data_6 = + "\"key with spaces\" \"data with spaces\"\n" + "\"key with spaces\" \"multiline data\"\\\n" + "\"cont\"\\\n" + "\"cont\""; + +const char *error_data_1 = + ";Test file for info_parser\n" + "#include \"bogus_file\"\n"; // Nonexistent include file + +const char *error_data_2 = + ";Test file for info_parser\n" + "key \"data with bad escape: \\q\"\n"; // Bad escape + +const char *error_data_3 = + ";Test file for info_parser\n"+ "{\n"; // Opening brace without key
+ +const char *error_data_4 = + ";Test file for info_parser\n"+ "}\n"; // Closing brace without opening brace
+ +const char *error_data_5 = + ";Test file for info_parser\n" + "key data\n" + "{\n" + ""; // No closing brace + +struct ReadFunc +{ + template<class Ptree> + void operator()(const std::string &filename, Ptree &pt) const + { + boost::property_tree::read_info(filename, pt); + } +}; + +struct WriteFunc +{ + template<class Ptree> + void operator()(const std::string &filename, const Ptree &pt) const + { + boost::property_tree::write_info(filename, pt); + } +}; + +template<class Ptree> +void test_info_parser() +{ + + using namespace boost::property_tree; + + generic_parser_test_ok<Ptree, ReadFunc, WriteFunc> + ( + ReadFunc(), WriteFunc(), ok_data_1, ok_data_1_inc, + "testok1.info", "testok1_inc.info", "testok1out.info", 45, 240, 192 + ); + + generic_parser_test_ok<Ptree, ReadFunc, WriteFunc> + ( + ReadFunc(), WriteFunc(), ok_data_2, NULL, + "testok2.info", NULL, "testok2out.info", 1, 0, 0 + ); + + generic_parser_test_ok<Ptree, ReadFunc, WriteFunc> + ( + ReadFunc(), WriteFunc(), ok_data_3, NULL, + "testok3.info", NULL, "testok3out.info", 5, 0, 16 + ); + + generic_parser_test_ok<Ptree, ReadFunc, WriteFunc> + ( + ReadFunc(), WriteFunc(), ok_data_4, NULL, + "testok4.info", NULL, "testok4out.info", 3, 8, 8 + ); + + generic_parser_test_ok<Ptree, ReadFunc, WriteFunc> + ( + ReadFunc(), WriteFunc(), ok_data_5, NULL, + "testok5.info", NULL, "testok5out.info", 4, 0, 9 + ); + + generic_parser_test_ok<Ptree, ReadFunc, WriteFunc> + ( + ReadFunc(), WriteFunc(), ok_data_6, NULL, + "testok6.info", NULL, "testok6out.info", 3, 38, 30 + ); ++ generic_parser_test_error<Ptree, ReadFunc, WriteFunc, info_parser_error>
+ ( + ReadFunc(), WriteFunc(), error_data_1, NULL, + "testerr1.info", NULL, "testerr1out.info", 2 + ); ++ generic_parser_test_error<Ptree, ReadFunc, WriteFunc, info_parser_error>
+ ( + ReadFunc(), WriteFunc(), error_data_2, NULL, + "testerr2.info", NULL, "testerr2out.info", 2 + ); ++ generic_parser_test_error<Ptree, ReadFunc, WriteFunc, info_parser_error>
+ ( + ReadFunc(), WriteFunc(), error_data_3, NULL, + "testerr3.info", NULL, "testerr3out.info", 2 + ); ++ generic_parser_test_error<Ptree, ReadFunc, WriteFunc, info_parser_error>
+ ( + ReadFunc(), WriteFunc(), error_data_4, NULL, + "testerr4.info", NULL, "testerr4out.info", 2 + ); ++ generic_parser_test_error<Ptree, ReadFunc, WriteFunc, info_parser_error>
+ ( + ReadFunc(), WriteFunc(), error_data_5, NULL, + "testerr5.info", NULL, "testerr5out.info", 4 + ); + + // Test read with default ptree + { + Ptree pt, default_pt; + pt.put_value(1); + default_pt.put_value(2); + BOOST_CHECK(pt != default_pt); + read_info("nonexisting file.nonexisting file", pt, default_pt); + BOOST_CHECK(pt == default_pt); + } + +} + +int test_main(int argc, char *argv[]) +{ + using namespace boost::property_tree; + test_info_parser<ptree>(); + test_info_parser<iptree>(); +#ifndef BOOST_NO_CWCHAR + test_info_parser<wptree>(); + test_info_parser<wiptree>(); +#endif + return 0; +} ======================================= ***Additional files exist in this changeset.***