Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76287 - in branches/release: . boost boost/algorithm/string boost/algorithm/string/detail boost/archive boost/bimap boost/config boost/date_time boost/date_time/posix_time boost/detail boost/dynamic_bitset boost/filesystem boost/function boost/functional boost/fusion boost/geometry boost/geometry/algorithms boost/geometry/arithmetic boost/geometry/core boost/geometry/domains boost/geometry/geometries boost/geometry/iterators boost/geometry/multi boost/geometry/policies boost/geometry/strategies boost/geometry/util boost/geometry/views boost/gil boost/graph boost/heap boost/icl boost/integer boost/interprocess boost/intrusive boost/io boost/iostreams boost/iterator boost/locale boost/math boost/msm boost/msm/back boost/msm/front boost/msm/front/detail boost/msm/front/euml boost/msm/mpl_graph boost/numeric/ublas boost/pool boost/preprocessor boost/program_options boost/program_options/detail boost/property_tree boost/python boost/range boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/typeof boost/unordered boost/utility boost/uuid boost/variant boost/wave boost/xpressive doc libs libs/algorithm/minmax libs/algorithm/string libs/algorithm/string/doc libs/array libs/array/test libs/bimap libs/config libs/date_time libs/date_time/data libs/date_time/example/gregorian libs/date_time/example/local_time libs/date_time/example/posix_time libs/date_time/example/tutorial libs/date_time/test/posix_time libs/date_time/xmldoc libs/detail libs/filesystem libs/function libs/functional libs/fusion libs/geometry libs/geometry/doc libs/geometry/doc/concept libs/geometry/doc/doxy libs/geometry/doc/generated libs/geometry/doc/html libs/geometry/doc/reference libs/geometry/doc/src libs/geometry/example libs/geometry/test libs/graph/doc libs/graph_parallel libs/heap libs/icl libs/icl/doc libs/icl/doc/html libs/icl/doc/html/header/boost/icl libs/icl/test libs/icl/test/test_doc_code_ libs/integer libs/interprocess libs/intrusive libs/io libs/io/doc libs/iostreams libs/iterator libs/locale libs/locale/src libs/math libs/math/doc/sf_and_dist libs/math/doc/sf_and_dist/html/math_toolkit/main_overview libs/math/test libs/mpi/build libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/msm libs/numeric/ublas libs/numeric/ublas/doc libs/parameter/doc/html libs/phoenix/doc libs/phoenix/doc/examples libs/pool libs/preprocessor libs/program_options libs/program_options/test libs/property_tree libs/proto/doc libs/proto/doc/reference libs/proto/doc/reference/concepts libs/proto/doc/reference/context libs/proto/doc/reference/functional libs/proto/doc/reference/functional/fusion libs/proto/doc/reference/functional/std libs/proto/doc/reference/transform libs/proto/example libs/python libs/range libs/regex libs/serialization libs/serialization/example libs/serialization/src libs/serialization/test libs/signals libs/signals2 libs/signals2/doc libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/typeof/doc libs/unordered libs/utility libs/utility/swap/test libs/uuid libs/wave more status tools tools/bcp tools/boostbook tools/build/v2 tools/build/v2/tools tools/inspect tools/quickbook tools/regression tools/regression/src tools/release tools/wave
From: eric_at_[hidden]
Date: 2012-01-02 19:59:07


Author: eric_niebler
Date: 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
New Revision: 76287
URL: http://svn.boost.org/trac/boost/changeset/76287

Log:
merged [76281] [76286] from trunk
Added:
   branches/release/libs/proto/doc/reference/context.xml
      - copied unchanged from r76286, /trunk/libs/proto/doc/reference/context.xml
   branches/release/libs/proto/doc/reference/transform.xml
      - copied unchanged from r76286, /trunk/libs/proto/doc/reference/transform.xml
Properties modified:
   branches/release/ (props changed)
   branches/release/INSTALL (props changed)
   branches/release/Jamroot (props changed)
   branches/release/LICENSE_1_0.txt (props changed)
   branches/release/boost/ (props changed)
   branches/release/boost-build.jam (props changed)
   branches/release/boost.css (props changed)
   branches/release/boost.png (props changed)
   branches/release/boost/algorithm/string/ (props changed)
   branches/release/boost/algorithm/string/detail/classification.hpp (props changed)
   branches/release/boost/archive/ (props changed)
   branches/release/boost/array.hpp (props changed)
   branches/release/boost/bimap/ (props changed)
   branches/release/boost/concept_check.hpp (props changed)
   branches/release/boost/config/ (props changed)
   branches/release/boost/config.hpp (props changed)
   branches/release/boost/cregex.hpp (props changed)
   branches/release/boost/cstdint.hpp (props changed)
   branches/release/boost/current_function.hpp (props changed)
   branches/release/boost/date_time/c_time.hpp (props changed)
   branches/release/boost/date_time/date_formatting.hpp (props changed)
   branches/release/boost/date_time/filetime_functions.hpp (props changed)
   branches/release/boost/date_time/gregorian_calendar.ipp (props changed)
   branches/release/boost/date_time/posix_time/time_serialize.hpp (props changed)
   branches/release/boost/date_time/strings_from_facet.hpp (props changed)
   branches/release/boost/date_time/time_facet.hpp (props changed)
   branches/release/boost/date_time/tz_db_base.hpp (props changed)
   branches/release/boost/detail/ (props changed)
   branches/release/boost/detail/interlocked.hpp (props changed)
   branches/release/boost/dynamic_bitset/dynamic_bitset.hpp (props changed)
   branches/release/boost/filesystem/ (props changed)
   branches/release/boost/filesystem.hpp (props changed)
   branches/release/boost/function/ (props changed)
   branches/release/boost/function/function_template.hpp (props changed)
   branches/release/boost/functional/ (props changed)
   branches/release/boost/fusion/ (props changed)
   branches/release/boost/geometry/ (props changed)
   branches/release/boost/geometry/algorithms/ (props changed)
   branches/release/boost/geometry/arithmetic/ (props changed)
   branches/release/boost/geometry/core/ (props changed)
   branches/release/boost/geometry/domains/ (props changed)
   branches/release/boost/geometry/geometries/ (props changed)
   branches/release/boost/geometry/geometry.hpp (props changed)
   branches/release/boost/geometry/iterators/ (props changed)
   branches/release/boost/geometry/multi/ (props changed)
   branches/release/boost/geometry/policies/ (props changed)
   branches/release/boost/geometry/strategies/ (props changed)
   branches/release/boost/geometry/util/ (props changed)
   branches/release/boost/geometry/views/ (props changed)
   branches/release/boost/gil/ (props changed)
   branches/release/boost/graph/ (props changed)
   branches/release/boost/heap/ (props changed)
   branches/release/boost/icl/ (props changed)
   branches/release/boost/integer/ (props changed)
   branches/release/boost/integer.hpp (props changed)
   branches/release/boost/integer_fwd.hpp (props changed)
   branches/release/boost/integer_traits.hpp (props changed)
   branches/release/boost/interprocess/ (props changed)
   branches/release/boost/intrusive/ (props changed)
   branches/release/boost/io/ (props changed)
   branches/release/boost/iostreams/ (props changed)
   branches/release/boost/iterator/ (props changed)
   branches/release/boost/iterator/iterator_facade.hpp (props changed)
   branches/release/boost/locale/ (props changed)
   branches/release/boost/locale.hpp (props changed)
   branches/release/boost/math/ (props changed)
   branches/release/boost/math_fwd.hpp (props changed)
   branches/release/boost/msm/ (props changed)
   branches/release/boost/msm/active_state_switching_policies.hpp (props changed)
   branches/release/boost/msm/back/ (props changed)
   branches/release/boost/msm/back/args.hpp (props changed)
   branches/release/boost/msm/back/bind_helpers.hpp (props changed)
   branches/release/boost/msm/back/common_types.hpp (props changed)
   branches/release/boost/msm/back/copy_policies.hpp (props changed)
   branches/release/boost/msm/back/default_compile_policy.hpp (props changed)
   branches/release/boost/msm/back/dispatch_table.hpp (props changed)
   branches/release/boost/msm/back/favor_compile_time.hpp (props changed)
   branches/release/boost/msm/back/fold_to_list.hpp (props changed)
   branches/release/boost/msm/back/history_policies.hpp (props changed)
   branches/release/boost/msm/back/metafunctions.hpp (props changed)
   branches/release/boost/msm/back/mpl_graph_fsm_check.hpp (props changed)
   branches/release/boost/msm/back/no_fsm_check.hpp (props changed)
   branches/release/boost/msm/back/queue_container_circular.hpp (props changed)
   branches/release/boost/msm/back/queue_container_deque.hpp (props changed)
   branches/release/boost/msm/back/state_machine.hpp (props changed)
   branches/release/boost/msm/back/tools.hpp (props changed)
   branches/release/boost/msm/common.hpp (props changed)
   branches/release/boost/msm/front/ (props changed)
   branches/release/boost/msm/front/common_states.hpp (props changed)
   branches/release/boost/msm/front/completion_event.hpp (props changed)
   branches/release/boost/msm/front/detail/ (props changed)
   branches/release/boost/msm/front/detail/common_states.hpp (props changed)
   branches/release/boost/msm/front/detail/row2_helper.hpp (props changed)
   branches/release/boost/msm/front/euml/ (props changed)
   branches/release/boost/msm/front/euml/algorithm.hpp (props changed)
   branches/release/boost/msm/front/euml/common.hpp (props changed)
   branches/release/boost/msm/front/euml/container.hpp (props changed)
   branches/release/boost/msm/front/euml/euml.hpp (props changed)
   branches/release/boost/msm/front/euml/euml_typeof.hpp (props changed)
   branches/release/boost/msm/front/euml/guard_grammar.hpp (props changed)
   branches/release/boost/msm/front/euml/iteration.hpp (props changed)
   branches/release/boost/msm/front/euml/operator.hpp (props changed)
   branches/release/boost/msm/front/euml/phoenix_placeholders.hpp (props changed)
   branches/release/boost/msm/front/euml/querying.hpp (props changed)
   branches/release/boost/msm/front/euml/state_grammar.hpp (props changed)
   branches/release/boost/msm/front/euml/stl.hpp (props changed)
   branches/release/boost/msm/front/euml/stt_grammar.hpp (props changed)
   branches/release/boost/msm/front/euml/transformation.hpp (props changed)
   branches/release/boost/msm/front/functor_row.hpp (props changed)
   branches/release/boost/msm/front/internal_row.hpp (props changed)
   branches/release/boost/msm/front/row2.hpp (props changed)
   branches/release/boost/msm/front/state_machine_def.hpp (props changed)
   branches/release/boost/msm/front/states.hpp (props changed)
   branches/release/boost/msm/mpl_graph/ (props changed)
   branches/release/boost/msm/msm_grammar.hpp (props changed)
   branches/release/boost/msm/proto_config.hpp (props changed)
   branches/release/boost/msm/row_tags.hpp (props changed)
   branches/release/boost/numeric/ublas/ (props changed)
   branches/release/boost/numeric/ublas/functional.hpp (props changed)
   branches/release/boost/pool/ (props changed)
   branches/release/boost/preprocessor/ (props changed)
   branches/release/boost/program_options/ (props changed)
   branches/release/boost/program_options/detail/parsers.hpp (props changed)
   branches/release/boost/program_options/parsers.hpp (props changed)
   branches/release/boost/property_tree/ (props changed)
   branches/release/boost/python/ (props changed)
   branches/release/boost/range/ (props changed)
   branches/release/boost/regex/ (props changed)
   branches/release/boost/regex.h (props changed)
   branches/release/boost/regex.hpp (props changed)
   branches/release/boost/regex_fwd.hpp (props changed)
   branches/release/boost/serialization/ (props changed)
   branches/release/boost/signals/ (props changed)
   branches/release/boost/signals2/ (props changed)
   branches/release/boost/signals2.hpp (props changed)
   branches/release/boost/spirit/ (props changed)
   branches/release/boost/spirit/home/ (props changed)
   branches/release/boost/spirit/home/karma/ (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp (props changed)
   branches/release/boost/statechart/ (props changed)
   branches/release/boost/static_assert.hpp (props changed)
   branches/release/boost/system/ (props changed)
   branches/release/boost/thread/ (props changed)
   branches/release/boost/thread.hpp (props changed)
   branches/release/boost/timer.hpp (props changed)
   branches/release/boost/token_functions.hpp (props changed)
   branches/release/boost/tr1/ (props changed)
   branches/release/boost/type_traits/ (props changed)
   branches/release/boost/type_traits.hpp (props changed)
   branches/release/boost/typeof/message.hpp (props changed)
   branches/release/boost/typeof/register_functions.hpp (props changed)
   branches/release/boost/typeof/register_functions_iterate.hpp (props changed)
   branches/release/boost/typeof/typeof.hpp (props changed)
   branches/release/boost/typeof/unsupported.hpp (props changed)
   branches/release/boost/unordered/ (props changed)
   branches/release/boost/utility/ (props changed)
   branches/release/boost/utility/value_init.hpp (props changed)
   branches/release/boost/uuid/ (props changed)
   branches/release/boost/variant/ (props changed)
   branches/release/boost/version.hpp (props changed)
   branches/release/boost/wave/ (props changed)
   branches/release/boost/xpressive/ (props changed)
   branches/release/boostcpp.jam (props changed)
   branches/release/bootstrap.bat (props changed)
   branches/release/bootstrap.sh (props changed)
   branches/release/doc/ (props changed)
   branches/release/index.htm (props changed)
   branches/release/index.html (props changed)
   branches/release/libs/ (props changed)
   branches/release/libs/algorithm/minmax/index.html (props changed)
   branches/release/libs/algorithm/string/ (props changed)
   branches/release/libs/algorithm/string/doc/Jamfile.v2 (props changed)
   branches/release/libs/array/ (props changed)
   branches/release/libs/array/test/array0.cpp (props changed)
   branches/release/libs/array/test/array2.cpp (props changed)
   branches/release/libs/array/test/array6.cpp (props changed)
   branches/release/libs/bimap/ (props changed)
   branches/release/libs/config/ (props changed)
   branches/release/libs/date_time/ (props changed)
   branches/release/libs/date_time/data/date_time_zonespec.csv (props changed)
   branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp (props changed)
   branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp (props changed)
   branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp (props changed)
   branches/release/libs/date_time/example/gregorian/month_add.cpp (props changed)
   branches/release/libs/date_time/example/local_time/flight.cpp (props changed)
   branches/release/libs/date_time/example/local_time/local_date_time.cpp (props changed)
   branches/release/libs/date_time/example/posix_time/print_hours.cpp (props changed)
   branches/release/libs/date_time/example/posix_time/time_math.cpp (props changed)
   branches/release/libs/date_time/example/tutorial/io_tutorial.cpp (props changed)
   branches/release/libs/date_time/test/posix_time/testtime_facet.cpp (props changed)
   branches/release/libs/date_time/test/posix_time/testtime_input_facet.cpp (props changed)
   branches/release/libs/date_time/xmldoc/date_class.xml (props changed)
   branches/release/libs/date_time/xmldoc/usage_examples.xml (props changed)
   branches/release/libs/detail/ (props changed)
   branches/release/libs/filesystem/ (props changed)
   branches/release/libs/function/ (props changed)
   branches/release/libs/functional/ (props changed)
   branches/release/libs/fusion/ (props changed)
   branches/release/libs/geometry/ (props changed)
   branches/release/libs/geometry/doc/ (props changed)
   branches/release/libs/geometry/doc/Jamfile.v2 (props changed)
   branches/release/libs/geometry/doc/about_documentation.qbk (props changed)
   branches/release/libs/geometry/doc/acknowledgments.qbk (props changed)
   branches/release/libs/geometry/doc/compiling.qbk (props changed)
   branches/release/libs/geometry/doc/concept/ (props changed)
   branches/release/libs/geometry/doc/copyright_note_policy.txt (props changed)
   branches/release/libs/geometry/doc/design_rationale.qbk (props changed)
   branches/release/libs/geometry/doc/doxy/ (props changed)
   branches/release/libs/geometry/doc/generated/ (props changed)
   branches/release/libs/geometry/doc/geometry.qbk (props changed)
   branches/release/libs/geometry/doc/html/ (props changed)
   branches/release/libs/geometry/doc/imports.qbk (props changed)
   branches/release/libs/geometry/doc/introduction.qbk (props changed)
   branches/release/libs/geometry/doc/make_qbk.py (props changed)
   branches/release/libs/geometry/doc/matrix.qbk (props changed)
   branches/release/libs/geometry/doc/quickref.xml (props changed)
   branches/release/libs/geometry/doc/quickstart.qbk (props changed)
   branches/release/libs/geometry/doc/readme.txt (props changed)
   branches/release/libs/geometry/doc/reference/ (props changed)
   branches/release/libs/geometry/doc/reference.qbk (props changed)
   branches/release/libs/geometry/doc/src/ (props changed)
   branches/release/libs/geometry/example/ (props changed)
   branches/release/libs/geometry/index.html (props changed)
   branches/release/libs/geometry/test/ (props changed)
   branches/release/libs/graph/doc/ (props changed)
   branches/release/libs/graph_parallel/ (props changed)
   branches/release/libs/heap/ (props changed)
   branches/release/libs/icl/ (props changed)
   branches/release/libs/icl/doc/ (props changed)
   branches/release/libs/icl/doc/html/ (props changed)
   branches/release/libs/icl/doc/html/header/boost/icl/ (props changed)
   branches/release/libs/icl/test/ (props changed)
   branches/release/libs/icl/test/test_doc_code_/ (props changed)
   branches/release/libs/integer/ (props changed)
   branches/release/libs/interprocess/ (props changed)
   branches/release/libs/intrusive/ (props changed)
   branches/release/libs/io/ (props changed)
   branches/release/libs/io/doc/ (props changed)
   branches/release/libs/iostreams/ (props changed)
   branches/release/libs/iterator/ (props changed)
   branches/release/libs/libraries.htm (props changed)
   branches/release/libs/locale/ (props changed)
   branches/release/libs/locale/src/ (props changed)
   branches/release/libs/maintainers.txt (props changed)
   branches/release/libs/math/ (props changed)
   branches/release/libs/math/doc/sf_and_dist/faq.qbk (props changed)
   branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html (props changed)
   branches/release/libs/math/test/s_.ipp (props changed)
   branches/release/libs/mpi/build/ (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
   branches/release/libs/msm/ (props changed)
   branches/release/libs/numeric/ublas/ (props changed)
   branches/release/libs/numeric/ublas/doc/ (props changed)
   branches/release/libs/parameter/doc/html/index.html (props changed)
   branches/release/libs/phoenix/doc/basics.qbk (props changed)
   branches/release/libs/phoenix/doc/examples/extending_actors.qbk (props changed)
   branches/release/libs/phoenix/doc/organisation.qbk (props changed)
   branches/release/libs/pool/ (props changed)
   branches/release/libs/preprocessor/ (props changed)
   branches/release/libs/program_options/ (props changed)
   branches/release/libs/program_options/test/parsers_test.cpp (props changed)
   branches/release/libs/property_tree/ (props changed)
   branches/release/libs/python/ (props changed)
   branches/release/libs/range/ (props changed)
   branches/release/libs/regex/ (props changed)
   branches/release/libs/serialization/ (props changed)
   branches/release/libs/serialization/example/ (props changed)
   branches/release/libs/serialization/src/ (props changed)
   branches/release/libs/serialization/test/test_diamond_complex.cpp (props changed)
   branches/release/libs/signals/ (props changed)
   branches/release/libs/signals2/ (props changed)
   branches/release/libs/signals2/doc/ (props changed)
   branches/release/libs/spirit/ (props changed)
   branches/release/libs/spirit/classic/example/ (props changed)
   branches/release/libs/spirit/doc/ (props changed)
   branches/release/libs/spirit/example/ (props changed)
   branches/release/libs/spirit/phoenix/ (props changed)
   branches/release/libs/spirit/test/ (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp (props changed)
   branches/release/libs/statechart/ (props changed)
   branches/release/libs/static_assert/ (props changed)
   branches/release/libs/system/ (props changed)
   branches/release/libs/thread/ (props changed)
   branches/release/libs/timer/ (props changed)
   branches/release/libs/tr1/ (props changed)
   branches/release/libs/type_traits/ (props changed)
   branches/release/libs/typeof/doc/typeof.qbk (props changed)
   branches/release/libs/unordered/ (props changed)
   branches/release/libs/utility/ (props changed)
   branches/release/libs/utility/assert.html (props changed)
   branches/release/libs/utility/assert_test.cpp (props changed)
   branches/release/libs/utility/swap.html (props changed)
   branches/release/libs/utility/swap/test/std_bitset.cpp (props changed)
   branches/release/libs/utility/value_init.htm (props changed)
   branches/release/libs/utility/value_init_test.cpp (props changed)
   branches/release/libs/uuid/ (props changed)
   branches/release/libs/wave/ (props changed)
   branches/release/more/ (props changed)
   branches/release/rst.css (props changed)
   branches/release/status/ (props changed)
   branches/release/status/Jamfile.v2 (props changed)
   branches/release/status/expected_results.xml (props changed)
   branches/release/status/explicit-failures-markup.xml (props changed)
   branches/release/status/explicit-failures.xsd (props changed)
   branches/release/tools/ (props changed)
   branches/release/tools/bcp/ (props changed)
   branches/release/tools/boostbook/ (props changed)
   branches/release/tools/build/v2/ (props changed)
   branches/release/tools/build/v2/tools/mpi.jam (props changed)
   branches/release/tools/inspect/ (props changed)
   branches/release/tools/quickbook/ (props changed)
   branches/release/tools/regression/ (props changed)
   branches/release/tools/regression/src/library_status.cpp (props changed)
   branches/release/tools/release/ (props changed)
   branches/release/tools/wave/ (props changed)
Text files modified:
   branches/release/libs/proto/doc/front_end.qbk | 361 ++++++++++++++++++++++++++++-----------
   branches/release/libs/proto/doc/reference.xml | 2
   branches/release/libs/proto/doc/reference/args.xml | 7
   branches/release/libs/proto/doc/reference/concepts/CallableTransform.xml | 4
   branches/release/libs/proto/doc/reference/concepts/Domain.xml | 4
   branches/release/libs/proto/doc/reference/concepts/Expr.xml | 4
   branches/release/libs/proto/doc/reference/concepts/ObjectTransform.xml | 2
   branches/release/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml | 4
   branches/release/libs/proto/doc/reference/concepts/PrimitiveTransform.xml | 4
   branches/release/libs/proto/doc/reference/concepts/Transform.xml | 4
   branches/release/libs/proto/doc/reference/context/callable.xml | 7
   branches/release/libs/proto/doc/reference/context/default.xml | 7
   branches/release/libs/proto/doc/reference/context/null.xml | 7
   branches/release/libs/proto/doc/reference/core.xml | 7
   branches/release/libs/proto/doc/reference/debug.xml | 7
   branches/release/libs/proto/doc/reference/deep_copy.xml | 7
   branches/release/libs/proto/doc/reference/domain.xml | 7
   branches/release/libs/proto/doc/reference/eval.xml | 7
   branches/release/libs/proto/doc/reference/expr.xml | 7
   branches/release/libs/proto/doc/reference/extends.xml | 7
   branches/release/libs/proto/doc/reference/functional.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion/at.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion/pop_back.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion/pop_front.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion/push_back.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion/push_front.xml | 7
   branches/release/libs/proto/doc/reference/functional/fusion/reverse.xml | 7
   branches/release/libs/proto/doc/reference/functional/std.xml | 7
   branches/release/libs/proto/doc/reference/functional/std/utility.xml | 7
   branches/release/libs/proto/doc/reference/fusion.xml | 7
   branches/release/libs/proto/doc/reference/generate.xml | 7
   branches/release/libs/proto/doc/reference/literal.xml | 7
   branches/release/libs/proto/doc/reference/make_expr.xml | 7
   branches/release/libs/proto/doc/reference/matches.xml | 16 +
   branches/release/libs/proto/doc/reference/operators.xml | 7
   branches/release/libs/proto/doc/reference/proto.xml | 7
   branches/release/libs/proto/doc/reference/proto_fwd.xml | 7
   branches/release/libs/proto/doc/reference/proto_typeof.xml | 7
   branches/release/libs/proto/doc/reference/repeat.xml | 7
   branches/release/libs/proto/doc/reference/tags.xml | 7
   branches/release/libs/proto/doc/reference/traits.xml | 7
   branches/release/libs/proto/doc/reference/transform/arg.xml | 7
   branches/release/libs/proto/doc/reference/transform/call.xml | 7
   branches/release/libs/proto/doc/reference/transform/default.xml | 7
   branches/release/libs/proto/doc/reference/transform/fold.xml | 7
   branches/release/libs/proto/doc/reference/transform/fold_tree.xml | 7
   branches/release/libs/proto/doc/reference/transform/impl.xml | 7
   branches/release/libs/proto/doc/reference/transform/integral_c.xml | 7
   branches/release/libs/proto/doc/reference/transform/lazy.xml | 7
   branches/release/libs/proto/doc/reference/transform/make.xml | 7
   branches/release/libs/proto/doc/reference/transform/pass_through.xml | 7
   branches/release/libs/proto/doc/reference/transform/when.xml | 7
   branches/release/libs/proto/example/lambda.hpp | 129 ++++---------
   branches/release/libs/proto/example/mini_lambda.cpp | 2
   55 files changed, 625 insertions(+), 212 deletions(-)

Modified: branches/release/libs/proto/doc/front_end.qbk
==============================================================================
--- branches/release/libs/proto/doc/front_end.qbk (original)
+++ branches/release/libs/proto/doc/front_end.qbk 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -272,11 +272,18 @@
 
 [endsect]
 
-[/==============================================]
-[section Adding Members by Extending Expressions]
-[/==============================================]
-
-In this section, we'll see how to associate Proto expressions with a /domain/, how to add members to expressions within a domain, and how to control which operators are overloaded in a domain.
+[/=============================================]
+[section Customizing Expressions in Your Domain]
+[/=============================================]
+
+In this section, we'll learn all about /domains/. In particular, we'll learn:
+
+* How to associate Proto expressions with a domain,
+* How to add members to expressions within a domain,
+* How to use a /generator/ to post-process all new expressions created in your domain,
+* How to control which operators are overloaded in a domain,
+* How to specify capturing policies for child expressions and non-Proto objects, and
+* How to make expressions from separate domains interoperate.
 
 [/==============]
 [section Domains]
@@ -591,6 +598,249 @@
 
 [endsect]
 
+[/=========================================================================]
+[section:per_domain_as_child Controlling How Child Expressions Are Captured]
+[/=========================================================================]
+
+Proto's operator overloads build expressions from sub-expressions. The sub-expressions become children of the new expression. By default, the children are stored in the parent by reference. This section describes how to change that default.
+
+[/-----------------------------------------]
+[heading Primer: [^as_child] vs. [^as_expr]]
+[/-----------------------------------------]
+
+Proto lets you independently customize the behavior of _as_child_ and _as_expr_. Both accept an object [^x] and return a Proto expression by turning [^x] it into a Proto terminal if necessary. Although similar, the two functions are used in different situations and have subtly different behavior by default. It's important to understand the difference so that you know which to customize to achieve the behavior you want.
+
+To wit: _as_expr_ is typically used by /you/ to turn an object into a Proto expression that is to be held in a local variable, as so:
+
+ auto l = proto::as_expr(x); // Turn x into a Proto expression, hold the result in a local
+
+The above works regardless of whether `x` is already a Proto expression or not. The object `l` is guaranteed to be a valid Proto expression. If `x` is a non-Proto object, it is turned into terminal expression that hold `x` /by value/.[footnote It's not always possible to hold something by value. By default, _as_expr_ makes an exception for functions, abstract types, and iostreams (types derived from `std::ios_base`). These objects are held by reference. All others are held by value, even arrays.] If `x` is a Proto object already, _as_expr_ returns it /by value/ unmodified.
+
+In contrast, _as_child_ is used internally by Proto to pre-process some object before making it a child of another expression. Since it's internal to Proto, you don't see it explicitly, but it's there behind the scenes in expressions like this:
+
+ x + y; // Consider that y is a Proto expression, but x may or may not be.
+
+In this case, Proto builds a plus node from the two children. Both are pre-processed by passing them to _as_child_ before making them children of the new node. If `x` is not a Proto expression, it becomes one by being wrapped in a Proto terminal that holds it /by reference/. If `x` is already a Proto expression, _as_child_ returns it /by reference/ unmodified. Contrast this with the above description for _as_expr_.
+
+The table below summarizes the above description.
+
+[table proto::as_expr() vs. proto::as_child()
+[[[*Function]] [[*When [^t] is not a Proto expr...]] [[*When [^t] is a Proto expr...]]]
+[[[^proto::as_expr(t)]] [Return (by value) a new Proto terminal holding [^t] by value.] [Return [^t] by value unmodified.]]
+[[[^proto::as_child(t)]] [Return (by value) a new Proto terminal holding [^t] by reference.] [Return [^t] by reference unmodified.]]
+]
+
+Now that you know what _as_child_ and _as_expr_ are, where they are used, and what they do by default, you may decide that one or both of these functions should have different behavior for your domain. For instance, given the above description of _as_child_, the following code is always wrong:
+
+ proto::literal<int> i(0);
+ auto l = i + 42; // This is WRONG! Don't do this.
+
+Why is this wrong? Because _as_child_ will turn the integer literal 42 into a Proto terminal that holds a reference to a temporary integer initialized with 42. The lifetime of that temporary ends at the semicolon, guaranteeing that the local `l` is left holding a dangling reference to a deceased integer. What to do? One answer is to use _deep_copy_. Another is to customize the behavior of _as_child_ for your domain. Read on for the details.
+
+[/-----------------------------]
+[heading Per-Domain [^as_child]]
+[/-----------------------------]
+
+To control how Proto builds expressions out of sub-expressions in your domain, define your domain as usual, and then define a nested `as_child<>` class template within it, as follows:
+
+[def __unspecified_expression_type__ ['[^unspecified-Proto-expr-type]]]
+[def __unspecified_expression__ ['[^unspecified-Proto-expr-object]]]
+
+ class my_domain
+ : proto::domain< my_generator, my_grammar >
+ {
+ // Here is where you define how Proto should handle
+ // sub-expressions that are about to be glommed into
+ // a larger expression.
+ template< typename T >
+ struct as_child
+ {
+ typedef __unspecified_expression_type__ result_type;
+
+ result_type operator()( T & t ) const
+ {
+ return __unspecified_expression__;
+ }
+ };
+ };
+
+There's one important thing to note: in the above code, the template parameter [^T] may or may not be a Proto expression type, but the result /must/ be a Proto expression type, or a reference to one. That means that most user-defined [^as_child<>] templates will need to check whether [^T] is an expression or not (using _is_expr_), and then turn non-expressions into Proto terminals by wrapping them as `proto::terminal< /* ... */ >::type` or equivalent.
+
+[/----------------------------]
+[heading Per-Domain [^as_expr]]
+[/----------------------------]
+
+Although less common, Proto also lets you customize the behavior of _as_expr_ on a per-domain basis. The technique is identical to that for [^as_child]. See below:
+
+ class my_domain
+ : proto::domain< my_generator, my_grammar >
+ {
+ // Here is where you define how Proto should handle
+ // objects that are to be turned into expressions
+ // fit for storage in local variables.
+ template< typename T >
+ struct as_expr
+ {
+ typedef __unspecified_expression_type__ result_type;
+
+ result_type operator()( T & t ) const
+ {
+ return __unspecified_expression__;
+ }
+ };
+ };
+
+
+[/--------------------------------------------]
+[heading Making Proto Expressions [^auto]-safe]
+[/--------------------------------------------]
+
+Let's look again at the problem described above involving the C++11 `auto` keyword and the default behavior of _as_child_.
+
+ proto::literal<int> i(0);
+ auto l = i + 42; // This is WRONG! Don't do this.
+
+Recall that the problem is the lifetime of the temporary integer created to hold the value 42. The local `l` will be left holding a dangling reference to it after its lifetime is over. What if we want Proto to make expressions safe to store this way in local variables? We can do so very easily by making _as_child_ behave just like _as_expr_. The following code achieves this:
+
+ template< typename E >
+ struct my_expr;
+
+ struct my_generator
+ : proto::pod_generator< my_expr >
+ {};
+
+ struct my_domain
+ : proto::domain< my_generator >
+ {
+ // Make as_child() behave like as_expr() in my_domain.
+ // (proto_base_domain is a typedef for proto::domain< my_generator >
+ // that is defined in proto::domain<>.)
+ template< typename T >
+ struct as_child
+ : proto_base_domain::as_expr< T >
+ {};
+ };
+
+ template< typename E >
+ struct my_expr
+ {
+ BOOST_PROTO_EXTENDS( E, my_expr< E >, my_domain )
+ };
+
+ /* ... */
+
+ proto::literal< int, my_domain > i(0);
+ auto l = i + 42; // OK! Everything is stored by value here.
+
+Notice that `my_domain::as_child<>` simply defers to the default implementation of `as_expr<>` found in _domain_. By simply cross-wiring our domain's `as_child<>` to `as_expr<>`, we guarantee that all terminals that can be held by value are, and that all child expressions are also held by value. This increases copying and may incur a runtime performance cost, but it eliminates any spector of lifetime management issues.
+
+For another example, see the definition of `lldomain` in [^libs/proto/example/lambda.hpp]. That example is a complete reimplementation of the Boost Lambda Library (BLL) on top of Boost.Proto. The function objects the BLL generates are safe to be stored in local variables. To emulate this with Proto, the `lldomain` cross-wires `as_child<>` to `as_expr<>` as above, but with one extra twist: objects with array type are also stored by reference. Check it out.
+
+[endsect]
+
+[/======================================================]
+[section:subdomains EDSL Interoperatability: Sub-Domains]
+[/======================================================]
+
+The ability to /compose/ different EDSLs is one of their most exciting features. Consider how you build a parser using yacc. You write your grammar rules in yacc's domain-specific language. Then you embed semantic actions written in C within your grammar. Boost's Spirit parser generator gives you the same ability. You write grammar rules using Spirit.Qi and embed semantic actions using the Phoenix library. Phoenix and Spirit are both Proto-based domain-specific languages with their own distinct syntax and semantics. But you can freely embed Phoenix expressions within Spirit expressions. This section describes Proto's /sub-domain/ feature that lets you define famalies of interoperable domains.
+
+[/======================]
+[heading Dueling Domains]
+[/======================]
+
+Sub-domains solve a specific problem that only comes up when you try to create an expression from two sub-expressions in different domains: what is the domain of the resulting expression? Consider the following code:
+
+ #include <boost/proto/proto.hpp>
+ namespace proto = boost::proto;
+
+ // Forward-declare two expression wrappers
+ template<typename E> struct spirit_expr;
+ template<typename E> struct phoenix_expr;
+
+ // Define two domains
+ struct spirit_domain : proto::domain<proto::generator<spirit_expr> > {};
+ struct phoenix_domain : proto::domain<proto::generator<phoenix_expr> > {};
+
+ // Implement the two expresison wrappers
+ template<typename E>
+ struct spirit_expr
+ : proto::extends<E, spirit_expr<E>, spirit_domain>
+ {
+ spirit_expr(E const &e = E()) : spirit_expr::proto_extends(e) {}
+ };
+
+ template<typename E>
+ struct phoenix_expr
+ : proto::extends<E, phoenix_expr<E>, phoenix_domain>
+ {
+ phoenix_expr(E const &e = E()) : phoenix_expr::proto_extends(e) {}
+ };
+
+ int main()
+ {
+ proto::literal<int, spirit_domain> sp(0);
+ proto::literal<int, phoenix_domain> phx(0);
+
+ // Whoops! What does it mean to add two expression in different domains?
+ sp + phx; // ERROR
+ }
+
+Above, we define two domains called `spirit_domain` and `phoenix_domain` and declare two int literals in each. Then we try to compose them into a larger expression using Proto's binary plus operator, and it fails. Proto can't figure out whether the resulting expression should be in the Spirit domain or the Phoenix domain, and thus whether it should be an instance of `spirit_expr<>` or `phoenix_expr<>`. We have to tell Proto how to resolve the conflict. We can do that by declaring that Phoenix is a sub-domain of Spirit as in the following definition of `phoenix_domain`:
+
+[def __spirit_domain__ [*spirit_domain]]
+
+ // Declare that phoenix_domain is a sub-somain of spirit_domain
+ struct phoenix_domain
+ : proto::domain<proto::generator<phoenix_expr>, proto::_, __spirit_domain__>
+ {};
+
+The third template parameter to _domain_ is the super-domain. By defining `phoenix_domain` as above, we are saying that Phoenix expressions can be combined with Spirit expressions, and that when that happens, the resulting expression should be a Spirit expression.
+
+[note If you are wondering what the purpose of `proto::_` is in the definition of `phoenix_domain` above, recall that the second template parameter to _domain_ is the domain's grammar. ["`proto::_`] is the default and signifies that the domain places no restrictions on the expressions that are valid within it.]
+
+[/------------------------]
+[heading Domain Resolution]
+[/------------------------]
+
+When there are multiple domains in play within a given expression, Proto uses some rules to figure out which domain "wins". The rules are loosly modeled on the rules for C++ inheritance. `Phoenix_domain` is a sub-domain of `spirit_domain`. You can liken that to a derived/base relationship that gives Phoenix expressions a kind of implicit conversion to Spirit expressions. And since Phoenix expressions can be "converted" to Spirit expressions, they can be freely combined with Spirit expressions and the result is a Spirit expression.
+
+[note Super- and sub-domains are not actually implemented using inheritance. This is only a helpful mental model.]
+
+The analogy with inheritance holds even in the case of three domains when two are sub-domains of the third. Imagine another domain called `foobar_domain` that was also a sub-domain of `spirit_domain`. Expressions in the `foobar_domain` could be combined with expressions in the `phoenix_domain` and the resulting expression would be in the `spirit_domain`. That's because expressions in the two sub-domains both have "conversions" to the super-domain, so the operation is allowed and the super-domain wins.
+
+[/-------------------------]
+[heading The Default Domain]
+[/-------------------------]
+
+When you don't assign a Proto expression to a particular domain, Proto considers it a member of the so-called default domain, `proto::default_domain`. Even non-Proto objects are treated as terminals in the default domain. Consider:
+
+ int main()
+ {
+ proto::literal<int, spirit_domain> sp(0);
+
+ // Add 1 to a spirit expression. Result is a spirit expression.
+ sp + 1;
+ }
+
+In light of the above discussion about sub-domains, one could think of `proto::default_domain` as a sub-domain of /every other domain/. Expressions in the default domain have a kind of implicit conversion to every other domain type. That's exactly how Proto sees it! What's more, you can define your domain to be a sub-domain of the default domain. In so doing, you give expression in your domain conversions to expressions in every other domain. This is like a "free love" domain, because it will freely mix with all other domains.
+
+Let's think again about the Phoenix EDSL. Since it provides generally useful lambda functionionality, it's reasonable to assume that lots of other EDSLs besides Spirit might want the ability to embed Phoenix expressions. In other words, `phoenix_domain` should be a sub-domain of `proto::default_domain`, not `spirit_domain`:
+
+ // Declare that phoenix_domain is a sub-somain of proto::default_domain
+ struct phoenix_domain
+ : proto::domain<proto::generator<phoenix_expr>, proto::_, proto::default_domain>
+ {};
+
+That's much better. Phoenix expressions can now be put anywhere.
+
+[/-------------------------]
+[heading Sub-Domain Summary]
+[/-------------------------]
+
+Use Proto sub-domains to make it possible to mix expressions from multiple domains. And when you want expressions in your domain to freely combine with /all/ expressions, make it a sub-domain of `proto::default_domain`.
+
+[endsect]
+
 [endsect]
 
 [section:define_operators Adapting Existing Types to Proto]
@@ -732,105 +982,4 @@
 
 [endsect]
 
-[/======================================================]
-[section:subdomains EDSL Interoperatability: Sub-Domains]
-[/======================================================]
-
-The ability to /compose/ different EDSLs is one of their most exciting features. Consider how you build a parser using yacc. You write your grammar rules in yacc's domain-specific language. Then you embed semantic actions written in C within your grammar. Boost's Spirit parser generator gives you the same ability. You write grammar rules using Spirit and embed semantic actions using the Phoenix library. Phoenix and Spirit are both Proto-based domain-specific languages with their own distinct syntax and semantics. But you can freely embed Phoenix expressions within Spirit expressions. This section describes Proto's /sub-domain/ feature that lets you define famalies of interoperable domains.
-
-[/======================]
-[heading Dueling Domains]
-[/======================]
-
-Sub-domains solve a specific problem that only comes up when you try to create an expression from two sub-expressions in different domains: what is the domain of the resulting expression? Consider the following code:
-
- #include <boost/proto/proto.hpp>
- namespace proto = boost::proto;
-
- // Forward-declare two expression wrappers
- template<typename E> struct spirit_expr;
- template<typename E> struct phoenix_expr;
-
- // Define two domains
- struct spirit_domain : proto::domain<proto::generator<spirit_expr> > {};
- struct phoenix_domain : proto::domain<proto::generator<phoenix_expr> > {};
-
- // Implement the two expresison wrappers
- template<typename E>
- struct spirit_expr
- : proto::extends<E, spirit_expr<E>, spirit_domain>
- {
- spirit_expr(E const &e = E()) : spirit_expr::proto_extends(e) {}
- };
-
- template<typename E>
- struct phoenix_expr
- : proto::extends<E, phoenix_expr<E>, phoenix_domain>
- {
- phoenix_expr(E const &e = E()) : phoenix_expr::proto_extends(e) {}
- };
-
- int main()
- {
- proto::literal<int, spirit_domain> sp(0);
- proto::literal<int, phoenix_domain> phx(0);
-
- // Whoops! What does it mean to add two expression in different domains?
- sp + phx; // ERROR
- }
-
-Above, we define two domains called `spirit_domain` and `phoenix_domain` and declare two int literals in each. Then we try to compose them into a larger expression using Proto's binary plus operator, and it fails. Proto can't figure out whether the resulting expression should be in the Spirit domain or the Phoenix domain, and thus whether it should be an instance of `spirit_expr<>` or `pheonix_expr<>`. We have to tell Proto how to resolve the conflict. We can do that by declaring that Phoenix is a sub-domain of Spirit as in the following definition of `phoenix_domain`:
-
- // Declare that phoenix_domain is a sub-somain of spirit_domain
- struct phoenix_domain
- : proto::domain<proto::generator<phoenix_expr>, proto::_, spirit_domain>
- {};
-
-The third template parameter to _domain_ is the super-domain. By defining `phoenix_domain` as above, we are saying that Phoenix expressions can be combined with Spirit expressions, and that when that happens, the resulting expression should be a Spirit expression.
-
-[note If you are wondering what the purpose of `proto::_` is in the definition of `phoenix_domain` above, recall that the second template parameter to _domain_ is the domain's grammar. ["`proto::_`] is the default and signifies that the domain places no restrictions on the expressions that are valid within it.]
-
-[/------------------------]
-[heading Domain Resolution]
-[/------------------------]
-
-When there are multiple domains in play within a given expression, Proto uses some rules to figure out which domain "wins". The rules are loosly modeled on the rules for C++ inheritance. `Phoenix_domain` is a sub-domain of `spirit_domain`. You can liken that to a derived/base relationship that gives Phoenix expressions a kind of implicit conversion to Spirit expressions. And since Phoenix expressions can be "converted" to Spirit expressions, they can be freely combined with Spirit expressions and the result is a Spirit expression.
-
-[note Super- and sub-domains are not actually implemented using inheritance. This is only a helpful mental model.]
-
-The analogy with inheritance holds even in the case of three domains when two are sub-domains of the third. Imagine another domain called `foobar_domain` that was also a sub-domain of `spirit_domain`. Expressions in the `foobar_domain` could be combined with expressions in the `phoenix_domain` and the resulting expression would be in the `spirit_domain`. That's because expressions in the two sub-domains both have "conversions" to the super-domain, so the operation is allowed and the super-domain wins.
-
-[/-------------------------]
-[heading The Default Domain]
-[/-------------------------]
-
-When you don't assign a Proto expression to a particular domain, Proto considers it a member of the so-called default domain, `proto::default_domain`. Even non-Proto objects are treated as terminals in the default domain. Consider:
-
- int main()
- {
- proto::literal<int, spirit_domain> sp(0);
-
- // Add 1 to a spirit expression. Result is a spirit expression.
- sp + 1;
- }
-
-In light of the above discussion about sub-domains, you might consider `proto::default_domain` as a sub-domain of every other domain. Expressions in the default domain have a kind of implicit conversion to every other domain type. That's exactly how Proto sees it! What's more, you can define your domain to be a sub-domain of the default domain. In so doing, you give expression in your domain conversions to expressions in /every other domain/. This is like a "free love" domain, because it will freely mix with all other domains.
-
-Let's think again about the Phoenix EDSL. Since it provides generally useful lambda functionionality, it's reasonable to assume that lots of other EDSLs besides Spirit might want the ability to embed Phoenix expressions. In other words, `phoenix_domain` should be a sub-domain of `proto::default_domain`, not `spirit_domain`:
-
- // Declare that phoenix_domain is a sub-somain of proto::default_domain
- struct phoenix_domain
- : proto::domain<proto::generator<phoenix_expr>, proto::_, proto::default_domain>
- {};
-
-That's much better. Phoenix expressions can now be put anywhere.
-
-[/-------------------------]
-[heading Sub-Domain Summary]
-[/-------------------------]
-
-Use Proto sub-domains to make it possible to mix expressions from multiple domains. And when you want expressions in your domain to freely combine with /all/ expressions, make it a sub-domain of `proto::default_domain`.
-
-[endsect]
-
 [endsect]

Modified: branches/release/libs/proto/doc/reference.xml
==============================================================================
--- branches/release/libs/proto/doc/reference.xml (original)
+++ branches/release/libs/proto/doc/reference.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1160,6 +1160,7 @@
   <xi:include href="reference/repeat.xml"/>
   <xi:include href="reference/tags.xml"/>
   <xi:include href="reference/traits.xml"/>
+ <xi:include href="reference/transform.xml"/>
   <xi:include href="reference/transform/arg.xml"/>
   <xi:include href="reference/transform/call.xml"/>
   <xi:include href="reference/transform/default.xml"/>
@@ -1171,6 +1172,7 @@
   <xi:include href="reference/transform/make.xml"/>
   <xi:include href="reference/transform/pass_through.xml"/>
   <xi:include href="reference/transform/when.xml"/>
+ <xi:include href="reference/context.xml"/>
   <xi:include href="reference/context/callable.xml"/>
   <xi:include href="reference/context/default.xml"/>
   <xi:include href="reference/context/null.xml"/>

Modified: branches/release/libs/proto/doc/reference/args.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/args.xml (original)
+++ branches/release/libs/proto/doc/reference/args.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/args.hpp">
   <para>
     Contains definitions of the <computeroutput>

Modified: branches/release/libs/proto/doc/reference/concepts/CallableTransform.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/CallableTransform.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/CallableTransform.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="CallableTransform" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="CallableTransform" category="utility">
   <param name="Fn" role="polymorphic-function-object-type" />
   <param name="Tn" role="transform-type" />
   <param name="Expr" role="expression-type" />

Modified: branches/release/libs/proto/doc/reference/concepts/Domain.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/Domain.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/Domain.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="Domain" category="utility">
- <!--
+<!--
   Copyright 2010 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="Domain" category="utility">
   <param name="Domain" role="domain-type" />
   <param name="Expr" role="expression-type" />
   <param name="Object" role="object-type" />

Modified: branches/release/libs/proto/doc/reference/concepts/Expr.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/Expr.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/Expr.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="Expr" category="utility">
- <!--
+<!--
   Copyright 2010 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="Expr" category="utility">
   <param name="Expr" role="expession-type"/>
   <param name="Tag" role="tag-type"/>
   <param name="Domain" role="domain-type"/>

Modified: branches/release/libs/proto/doc/reference/concepts/ObjectTransform.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/ObjectTransform.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/ObjectTransform.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,5 +1,4 @@
 <?xml version="1.0" ?>
-<concept name="ObjectTransform" category="utility">
   <!--
   Copyright 2008 Eric Niebler
 
@@ -7,6 +6,7 @@
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="ObjectTransform" category="utility">
   <param name="Obj" role="object-type" />
   <param name="Tn" role="transform-type" />
   <param name="Expr" role="expression-type" />

Modified: branches/release/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="PolymorphicFunctionObject" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="PolymorphicFunctionObject" category="utility">
   <param name="Fn" role="polymorphic-function-object-type" />
 
   <models-sentence>

Modified: branches/release/libs/proto/doc/reference/concepts/PrimitiveTransform.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/PrimitiveTransform.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/PrimitiveTransform.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="PrimitiveTransform" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="PrimitiveTransform" category="utility">
   <param name="Fn" role="primitive-transform-type" />
   <param name="Expr" role="expression-type" />
   <param name="State" role="state-type" />

Modified: branches/release/libs/proto/doc/reference/concepts/Transform.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/concepts/Transform.xml (original)
+++ branches/release/libs/proto/doc/reference/concepts/Transform.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="Transform" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="Transform" category="utility">
   <param name="Tn" role="transform-type" />
   <param name="Expr" role="expression-type" />
   <param name="State" role="state-type" />

Modified: branches/release/libs/proto/doc/reference/context/callable.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/context/callable.xml (original)
+++ branches/release/libs/proto/doc/reference/context/callable.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/context/callable.hpp">
   <para>Definintion of <computeroutput><classname alt="boost::proto::context::callable_context">proto::context::callable_context&lt;&gt;</classname></computeroutput>,
     an evaluation context for <computeroutput><functionname alt="boost::proto::eval">proto::eval()</functionname></computeroutput>

Modified: branches/release/libs/proto/doc/reference/context/default.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/context/default.xml (original)
+++ branches/release/libs/proto/doc/reference/context/default.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/context/default.hpp">
   <namespace name="boost">
     <namespace name="proto">

Modified: branches/release/libs/proto/doc/reference/context/null.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/context/null.xml (original)
+++ branches/release/libs/proto/doc/reference/context/null.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/context/null.hpp">
   <para>
     Definintion of

Modified: branches/release/libs/proto/doc/reference/core.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/core.xml (original)
+++ branches/release/libs/proto/doc/reference/core.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/core.hpp">
   <para>Includes all of Proto, except the contexts, transforms, debug utilities and Boost.Typeof registrations.</para>
 </header>

Modified: branches/release/libs/proto/doc/reference/debug.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/debug.xml (original)
+++ branches/release/libs/proto/doc/reference/debug.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/debug.hpp">
   <para>Utilities for debugging Proto expression trees </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/deep_copy.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/deep_copy.xml (original)
+++ branches/release/libs/proto/doc/reference/deep_copy.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/deep_copy.hpp">
   <para>Replace all nodes stored by reference by nodes stored by value.</para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/domain.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/domain.xml (original)
+++ branches/release/libs/proto/doc/reference/domain.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/domain.hpp">
   <para>
     Contains definition of the <computeroutput><classname alt="boost::proto::domain">proto::domain&lt;&gt;</classname>

Modified: branches/release/libs/proto/doc/reference/eval.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/eval.xml (original)
+++ branches/release/libs/proto/doc/reference/eval.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/eval.hpp">
   <para>
     Contains the

Modified: branches/release/libs/proto/doc/reference/expr.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/expr.xml (original)
+++ branches/release/libs/proto/doc/reference/expr.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/expr.hpp">
   <namespace name="boost">
     <namespace name="proto">

Modified: branches/release/libs/proto/doc/reference/extends.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/extends.xml (original)
+++ branches/release/libs/proto/doc/reference/extends.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/extends.hpp">
   <para>Macros and a base class for defining end-user expression types </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/functional.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional.xml (original)
+++ branches/release/libs/proto/doc/reference/functional.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional.hpp">
   <para>Includes all the functional extensions of Proto.</para>
 </header>

Modified: branches/release/libs/proto/doc/reference/functional/fusion.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion.hpp">
   <para>Includes all the functional extensions to Proto for the Boost.Fusion library.</para>
 </header>

Modified: branches/release/libs/proto/doc/reference/functional/fusion/at.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion/at.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion/at.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/at.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::at</classname></computeroutput>.</para>
 

Modified: branches/release/libs/proto/doc/reference/functional/fusion/pop_back.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion/pop_back.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion/pop_back.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/pop_back.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::pop_back</classname></computeroutput>.</para>
 

Modified: branches/release/libs/proto/doc/reference/functional/fusion/pop_front.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion/pop_front.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion/pop_front.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/pop_front.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::pop_front</classname></computeroutput>.</para>
 

Modified: branches/release/libs/proto/doc/reference/functional/fusion/push_back.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion/push_back.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion/push_back.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/push_back.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::push_back</classname></computeroutput>.</para>
 

Modified: branches/release/libs/proto/doc/reference/functional/fusion/push_front.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion/push_front.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion/push_front.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/push_front.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::push_front</classname></computeroutput>.</para>
 

Modified: branches/release/libs/proto/doc/reference/functional/fusion/reverse.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/fusion/reverse.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/fusion/reverse.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/reverse.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::reverse</classname></computeroutput>.</para>
 

Modified: branches/release/libs/proto/doc/reference/functional/std.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/std.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/std.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/std.hpp">
   <para>Includes all the functional extensions to Proto for the standard library.</para>
 </header>

Modified: branches/release/libs/proto/doc/reference/functional/std/utility.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/functional/std/utility.xml (original)
+++ branches/release/libs/proto/doc/reference/functional/std/utility.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/std/utility.hpp">
   <para>Defines Proto callables <computeroutput><classname>boost::proto::functional::make_pair</classname></computeroutput>,
   <computeroutput><classname>boost::proto::functional::first</classname></computeroutput> and

Modified: branches/release/libs/proto/doc/reference/fusion.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/fusion.xml (original)
+++ branches/release/libs/proto/doc/reference/fusion.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/fusion.hpp">
   <para>Make any Proto expression a valid Fusion sequence </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/generate.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/generate.xml (original)
+++ branches/release/libs/proto/doc/reference/generate.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/generate.hpp">
   <para>Contains definition of
     <computeroutput><classname alt="boost::proto::default_generator">proto::default_generator</classname></computeroutput>,

Modified: branches/release/libs/proto/doc/reference/literal.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/literal.xml (original)
+++ branches/release/libs/proto/doc/reference/literal.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/literal.hpp">
   <para>
     The

Modified: branches/release/libs/proto/doc/reference/make_expr.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/make_expr.xml (original)
+++ branches/release/libs/proto/doc/reference/make_expr.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/make_expr.hpp">
   <para>
     Definition of the <computeroutput><functionname alt="boost::proto::make_expr">proto::make_expr()</functionname>

Modified: branches/release/libs/proto/doc/reference/matches.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/matches.xml (original)
+++ branches/release/libs/proto/doc/reference/matches.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/matches.hpp">
   <para>
     Contains definition of the
@@ -441,7 +448,7 @@
           An expression type <computeroutput>E</computeroutput> matches
             <computeroutput>proto::switch_&lt;C,T&gt;</computeroutput> if
           <computeroutput>E</computeroutput> matches
- <computeroutput>C::case_&lt;boost::result_of&lt;T(E)&gt;::type&gt;</computeroutput>.
+ <computeroutput>C::case_&lt;boost::result_of&lt;<classname>proto::when</classname>&lt;<classname>proto::_</classname>,T&gt;(E)&gt;::type&gt;</computeroutput>.
           </para>
         <para>
           When applying <computeroutput>proto::switch_&lt;C,T&gt;</computeroutput> as a
@@ -449,7 +456,7 @@
             <computeroutput>E</computeroutput>, state <computeroutput>s</computeroutput> of
             type <computeroutput>S</computeroutput> and data <computeroutput>d</computeroutput>
             of type <computeroutput>D</computeroutput>, it is equivalent to
- <computeroutput>C::case_&lt;boost::result_of&lt;T(E,S,D)&gt;::type&gt;()(e, s, d)</computeroutput>.
+ <computeroutput>C::case_&lt;boost::result_of&lt;<classname>proto::when</classname>&lt;<classname>proto::_</classname>,T&gt;(E,S,D)&gt;::type&gt;()(e, s, d)</computeroutput>.
           </para>
         </description>
         <struct name="impl">
@@ -699,14 +706,15 @@
                   <computeroutput>
                     <classname>proto::switch_</classname>&lt;C, T&gt;
                   </computeroutput> if
- <computeroutput>E</computeroutput> matches <computeroutput>C::case_&lt;boost::result_of&lt;T(E)&gt;::type&gt;</computeroutput>.
+ <computeroutput>E</computeroutput> matches <computeroutput>C::case_&lt;boost::result_of&lt;<classname>proto::when</classname>&lt;<classname>proto::_</classname>,T&gt;(E)&gt;::type&gt;</computeroutput>.
                   Note: <computeroutput>T</computeroutput> defaults to <computeroutput><classname>proto::tag_of</classname>&lt;<classname>proto::_</classname>&gt;()</computeroutput>
                 </para>
               </listitem>
             </itemizedlist>
           </para>
           <para>
- A terminal expression
+ A terminal expression can trivially match the grammar <classname>proto::_</classname>. In addition,
+ a terminal expression
             <computeroutput>
               <classname>proto::basic_expr</classname>&lt;AT,
               <classname>proto::term</classname>&lt;A&gt; &gt;

Modified: branches/release/libs/proto/doc/reference/operators.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/operators.xml (original)
+++ branches/release/libs/proto/doc/reference/operators.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/operators.hpp">
   <para>Contains all the overloaded operators that make it possible to build Proto expression trees. </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/proto.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/proto.xml (original)
+++ branches/release/libs/proto/doc/reference/proto.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/proto.hpp">
   <para>Includes all of Proto, except the Boost.Typeof registrations.</para>
 </header>

Modified: branches/release/libs/proto/doc/reference/proto_fwd.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/proto_fwd.xml (original)
+++ branches/release/libs/proto/doc/reference/proto_fwd.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/proto_fwd.hpp">
   <para>Forward declarations of all of proto's public types and functions. </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/proto_typeof.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/proto_typeof.xml (original)
+++ branches/release/libs/proto/doc/reference/proto_typeof.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/proto_typeof.hpp">
   <para>Boost.Typeof registrations for Proto's types, and definition of the
     <computeroutput><macroname>BOOST_PROTO_AUTO</macroname>()</computeroutput> macro.</para>

Modified: branches/release/libs/proto/doc/reference/repeat.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/repeat.xml (original)
+++ branches/release/libs/proto/doc/reference/repeat.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/repeat.hpp">
   <para>
     Contains macros to ease the generation of repetitious code constructs.

Modified: branches/release/libs/proto/doc/reference/tags.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/tags.xml (original)
+++ branches/release/libs/proto/doc/reference/tags.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/tags.hpp">
   <para>Contains the tags for all the overloadable operators in C++ </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/traits.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/traits.xml (original)
+++ branches/release/libs/proto/doc/reference/traits.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/traits.hpp">
   <para>
     Contains definitions for various expression traits and utilities like

Modified: branches/release/libs/proto/doc/reference/transform/arg.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/arg.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/arg.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/arg.hpp">
   <para>Contains definition of the childN transforms and friends.</para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/transform/call.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/call.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/call.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/call.hpp">
   <para>Contains definition of the call&lt;&gt; transform. </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/transform/default.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/default.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/default.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/default.hpp">
   <namespace name="boost">
     <namespace name="proto">

Modified: branches/release/libs/proto/doc/reference/transform/fold.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/fold.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/fold.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/fold.hpp">
   <para>Contains definition of the
     <computeroutput>

Modified: branches/release/libs/proto/doc/reference/transform/fold_tree.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/fold_tree.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/fold_tree.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/fold_tree.hpp">
   <para>
     Contains definition of the

Modified: branches/release/libs/proto/doc/reference/transform/impl.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/impl.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/impl.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/impl.hpp">
   <para>Contains definition of transform&lt;&gt; and transform_impl&lt;&gt; helpers. </para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/transform/integral_c.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/integral_c.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/integral_c.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/integral_c.hpp">
   <para>Contains definition of the integral_c transform and friends.</para>
   <namespace name="boost">

Modified: branches/release/libs/proto/doc/reference/transform/lazy.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/lazy.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/lazy.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/lazy.hpp">
   <para>
     Contains definition of the

Modified: branches/release/libs/proto/doc/reference/transform/make.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/make.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/make.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/make.hpp">
   <para>
     Contains definition of the

Modified: branches/release/libs/proto/doc/reference/transform/pass_through.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/pass_through.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/pass_through.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/pass_through.hpp">
   <para>Definition of the
     <computeroutput><classname alt="boost::proto::pass_through">proto::pass_through&lt;&gt;</classname></computeroutput>

Modified: branches/release/libs/proto/doc/reference/transform/when.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/when.xml (original)
+++ branches/release/libs/proto/doc/reference/transform/when.xml 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/when.hpp">
   <para>
     Definition of the

Modified: branches/release/libs/proto/example/lambda.hpp
==============================================================================
--- branches/release/libs/proto/example/lambda.hpp (original)
+++ branches/release/libs/proto/example/lambda.hpp 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -1,10 +1,17 @@
 #ifndef BOOST_PP_IS_ITERATING
+ ///////////////////////////////////////////////////////////////////////////////
+ // Copyright 2008 Eric Niebler. Distributed under the Boost
+ // Software License, Version 1.0. (See accompanying file
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ //
+ // This example contains a full-featured reimplementation of the old,
+ // now-deprecated Boost Lambda Library (BLL) on top of Boost.Proto. It
+ // is necessarily complex to accomodate all the quirks and inconsistencies
+ // of that old library, but it is a good example of how to build a
+ // complete and full-featured EDLS using Proto.
     #ifndef BOOST_LAMBDA_HPP_EAN_04_19_2008
     #define BOOST_LAMBDA_HPP_EAN_04_19_2008
 
- #define BOOST_PROTO_MAX_ARITY 10
- #define BOOST_PROTO_MAX_FUNCTION_CALL_ARITY 5
-
     #include <iosfwd>
     #include <typeinfo>
     #include <algorithm>
@@ -17,7 +24,6 @@
     #include <boost/mpl/next_prior.hpp>
     #include <boost/mpl/min_max.hpp>
     #include <boost/mpl/assert.hpp>
- #include <boost/mpl/apply_wrap.hpp>
     #include <boost/preprocessor.hpp>
     #include <boost/utility/enable_if.hpp>
     #include <boost/utility/result_of.hpp>
@@ -26,9 +32,6 @@
     #include <boost/type_traits/remove_reference.hpp>
     #include <boost/type_traits/remove_const.hpp>
     #include <boost/type_traits/is_same.hpp>
- #include <boost/type_traits/is_abstract.hpp>
- #include <boost/type_traits/is_array.hpp>
- #include <boost/type_traits/is_function.hpp>
     #include <boost/proto/proto.hpp>
 
     #ifndef BOOST_LAMBDA_MAX_ARITY
@@ -102,27 +105,6 @@
               , proto::otherwise<proto::fold<proto::_, mpl::true_(), mpl::and_<proto::_state, IsNullary>()> >
>
         {};
-
- struct at : proto::callable
- {
- template<class Sig>
- struct result;
-
- template<class This, class Cont, class Int>
- struct result<This(Cont, Int)>
- : fusion::result_of::at<
- typename remove_reference<Cont>::type
- , typename remove_reference<Int>::type
- >
- {};
-
- template<typename Cont, typename Int>
- typename fusion::result_of::at<Cont, Int>::type
- operator ()(Cont &cont, Int const &) const
- {
- return fusion::at<Int>(cont);
- }
- };
 
         struct Eval;
 
@@ -268,7 +250,7 @@
         {
             template<typename Expr, typename State, typename Data, long Arity, typename BackTag>
             struct impl2;
-
+
             #define M0(Z, N, DATA) \
                 case proto::tag_of<typename proto::result_of::child_c<Expr, N>::type>::type::value: \
                     Eval()(proto::child_c<N>(expr), state, data); \
@@ -350,23 +332,23 @@
                 throw e;
             }
         };
-
+
         struct unwrap_ref : proto::callable
         {
             template<typename Sig>
             struct result;
-
+
             template<typename This, typename T>
             struct result<This(reference_wrapper<T>)>
             {
- typedef T &type;
+ typedef T &type;
             };
-
+
             template<typename This, typename T>
             struct result<This(T &)>
               : result<This(T)>
             {};
-
+
             template<typename T>
             T &operator()(reference_wrapper<T> const &ref) const
             {
@@ -429,7 +411,7 @@
           : proto::or_<
                 proto::when<
                     proto::terminal<placeholder<proto::_> >
- , at(proto::_data, proto::_value)
+ , proto::functional::at(proto::_data, proto::_value)
>
               , proto::when<
                     proto::terminal<exception_placeholder>
@@ -490,58 +472,29 @@
 
         using exprns_::llexpr;
 
- template<typename T>
- struct is_stream
- {
- private:
- static T &t;
- typedef char yes_type;
- typedef char (&no_type)[2];
- static no_type test_is_stream(...);
- template<typename Char, typename Traits>
- static yes_type test_is_stream(std::basic_istream<Char, Traits> &);
- template<typename Char, typename Traits>
- static yes_type test_is_stream(std::basic_ostream<Char, Traits> &);
- public:
- typedef bool value_type;
- static const bool value = sizeof(yes_type == sizeof(test_is_stream(t)));
- typedef mpl::bool_<value> type;
- };
-
- // These terminal types are always stored by reference
- template<typename Value>
- struct store_by_ref
- : mpl::or_<
- is_abstract<Value>
- , is_array<Value>
- , is_function<Value>
- , is_stream<Value>
- >
- {};
-
- // Wrap expressions in lambda::llexpr<>, and hold children nodes
- // and some terminal types by value.
+ // Wrap expressions in lambda::llexpr<>.
         struct Generator
- : proto::or_<
- proto::when<
- proto::and_<
- proto::terminal<proto::_>
- , proto::if_<store_by_ref<proto::_value>()>
- >
- , proto::pod_generator<llexpr>(proto::_)
- >
- , proto::otherwise<
- proto::compose_generators<
- proto::by_value_generator
- , proto::pod_generator<llexpr>
- >(proto::_)
- >
- >
+ : proto::pod_generator<llexpr>
         {};
 
+ // The domain for the lambda library.
         struct lldomain
- : proto::domain<Generator, Grammar>
- {};
+ : proto::domain<Generator, Grammar, proto::default_domain>
+ {
+ // Make all terminals and children held by value instead of by reference.
+ // Proto::domain<>::as_expr<> holds everything it can by value; the only
+ // exceptions are function types, abstract types, and iostreams.
+ template<typename T>
+ struct as_child
+ : proto_base_domain::as_expr<T>
+ {};
+
+ // The exception is arrays, which should still be held by reference
+ template<typename T, std::size_t N>
+ struct as_child<T[N]>
+ : proto_base_domain::as_child<T[N]>
+ {};
+ };
 
         template<typename Sig>
         struct llresult;
@@ -653,7 +606,7 @@
         {
             template<typename Sig>
             struct result;
-
+
             template<typename This, typename T>
             struct result<This(T &)>
             {
@@ -745,7 +698,7 @@
         {
             typedef llexpr<typename proto::terminal<T &>::type> type;
         };
-
+
         template<typename T>
         llexpr<typename proto::terminal<T &>::type> const
         var(T &t)
@@ -776,7 +729,7 @@
         {
             typedef llexpr<typename proto::terminal<T const &>::type> type;
         };
-
+
         template<typename T>
         llexpr<typename proto::terminal<T const &>::type> const
         constant_ref(T const &t)
@@ -1142,7 +1095,7 @@
         {
             return t;
         }
-
+
         #define M1(N, typename_A, A_const_ref, A_const_ref_a, ref_a) \
         template<typename_A(N)> \
         typename proto::result_of::make_expr< \
@@ -1741,7 +1694,7 @@
         }
 
     }}
-
+
     namespace boost
     {
         template<typename Expr>

Modified: branches/release/libs/proto/example/mini_lambda.cpp
==============================================================================
--- branches/release/libs/proto/example/mini_lambda.cpp (original)
+++ branches/release/libs/proto/example/mini_lambda.cpp 2012-01-02 19:59:02 EST (Mon, 02 Jan 2012)
@@ -183,7 +183,7 @@
     { return T(); }
 
     // Generate BOOST_PROTO_MAX_ARITY overloads of the
- // followig function call operator.
+ // following function call operator.
 #define BOOST_PROTO_LOCAL_MACRO(N, typename_A, A_const_ref, A_const_ref_a, a)\
     template<typename_A(N)> \
     T operator()(A_const_ref_a(N)) const \


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk