
[/ Copyright (C) 2009-2012 Lorenzo Caminiti ]
[/ Distributed under the Boost Software License, Version 1.0 ]
[/ (see accompanying file LICENSE_1_0.txt or a copy at ]
[/ http://www.boost.org/LICENSE_1_0.txt) ]
[/ Home at http://www.boost.org/libs/local_function ]

[library Boost.LocalFunction
    [quickbook 1.5]
    [version 1.0.0]
    [copyright 2009-2012 Lorenzo Caminiti]
    [purpose declare functions at local scope]
    [license
        Distributed under the Boost Software License, Version 1.0
        (see accompanying file LICENSE_1_0.txt or a copy at
        [@http://www.boost.org/LICENSE_1_0.txt])
    ]
    [authors [Caminiti <email>lorcaminiti@gmail.com</email>, Lorenzo]]
    [category Function Objects and Higher-Order Programming]
]

[def __CXX03__ [@http://www.open-std.org/JTC1/SC22/WG21/docs/standards C++03]]
[def __CXX11__ [@http://www.open-std.org/JTC1/SC22/WG21/ C++11]]
[def __C99__ [@http://www.open-std.org/jtc1/sc22/wg14/www/projects#9899 C99]]
[def __Boost__ [@http://www.boost.org Boost]]
[def __Boost_LocalFunction__ [@http://www.boost.org/libs/local_function Boost.LocalFunction]]
[def __Boost_ScopeExit__ [@http://www.boost.org/libs/scope_exit Boost.ScopeExit]]
[def __Boost_Test__ [@http://www.boost.org/libs/test Boost.Test]]
[def __Boost_Lambda__ [@http://www.boost.org/libs/lambda Boost.Lambda]]
[def __Boost_Phoenix__ [@http://www.boost.org/libs/phoenix Boost.Phoenix]]
[def __Boost_Preprocessor__ [@http://www.boost.org/libs/preprocessor Boost.Preprocessor]]
[def __Boost_MPL__ [@http://www.boost.org/libs/mpl Boost.MPL]]
[def __Boost_ConceptCheck__ [@http://www.boost.org/libs/concept_check Boost.ConceptCheck]]
[def __Boost_Parameter__ [@http://www.boost.org/libs/parameter Boost.Paramater]]
[def __Boost_Typeof__ [@http://www.boost.org/libs/typeof Boost.Typeof]]
[def __Boost_Function__ [@http://www.boost.org/libs/function Boost.Function]]
[def __Boost_Functional_OverloadedFunction__ [@http://www.boost.org/libs/functional/overloaded_function Boost.Functional/OverloadedFunction]]
[def __Boost_TypeTraits__ [@http://www.boost.org/libs/type_traits Boost.TypeTraits]]
[def __Boost_Utility_IdentityType__ [@http://www.boost.org/libs/utility/identity_type Boost.Utility/IdentityType]]
[def __Boost_Chrono__ [@http://www.boost.org/libs/chrono Boost.Chrono]]
[def __Boost_Config__ [@http://www.boost.org/libs/chrono Boost.Config]]
[def __CXX11_lambda_functions__ [@http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions C++11 lambda functions]]
[def __LISP__ [@http://en.wikipedia.org/wiki/Lisp_(programming_language) LISP]]
[def __Contractpp__ [@http://sourceforge.net/projects/contractpp Contract++]]
[def __D_Programming_Language__ [@http://d.digitalmars.com D Programming Language]]
[def __expression_template__ [@http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Expression-template expression template]]
[def __N1613__ [@http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1613.pdf \[N1613\]]]
[def __N2511__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2511.html \[N2511\]]]
[def __N2529__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2529.pdf \[N2529\]]]
[def __N2550__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2550.pdf \[N2550\]]]
[def __N2657__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm \[N2657\]]]

[def __Introduction__ [link boost_localfunction.introduction Introduction]]
[def __Getting_Started__ [link boost_localfunction.getting_started Getting Started]]
[def __Tutorial__ [link boost_localfunction.tutorial Tutorial]]
[def __Advanced_Topics__ [link boost_localfunction.advanced_topics Advanced Topics]]
[def __Examples__ [link boost_localfunction.examples Examples]]
[def __Reference__ [@reference.html Reference]]
[def __Alternatives__ [link boost_localfunction.alternatives Alternatives]]
[def __No_Variadic_Macros__ [link boost_localfunction.no_variadic_macros No Variadic Macros]]
[def __Implementation__ [link boost_localfunction.implementation Implementation]]
[def __Release_Notes__ [link boost_localfunction.release_notes Release Notes]]
[def __Bibliography__ [link boost_localfunction.bibliography Bibliography]]
[def __Acknowledgments__ [link boost_localfunction.acknowledgments Acknowledgments]]

[import ../test/add.cpp]
[import ../test/add_seq.cpp]
[import ../test/add_params_only.cpp]
[import ../test/ten_void.cpp]
[import ../test/add_this.cpp]
[import ../test/add_template.cpp]
[import ../test/add_default.cpp]
[import ../test/add_with_default.cpp]
[import ../test/macro_commas.cpp]
[import ../test/return_assign.cpp]
[import ../test/transform.cpp]
[import ../test/typeof.cpp]
[import ../test/typeof_template.cpp]
[import ../test/add_typed.cpp]
[import ../test/add_inline.cpp]
[import ../test/nesting.cpp]
[import ../test/factorial.cpp]
[import ../test/overload.cpp]
[import ../test/add_except.cpp]
[import ../test/operator_error.cpp]
[import ../test/goto.cpp]
[import ../test/goto_error.cpp]
[import ../test/same_line.cpp]

[import ../example/add_cxx11_lambda.cpp]
[import ../example/gcc_lambda.hpp]
[import ../example/gcc_lambda.cpp]
[import ../example/gcc_cxx11_lambda.cpp]
[import ../example/const_block.hpp]
[import ../example/const_block_error.cpp]
[import ../example/const_block_error_cxx11_lambda.cpp]
[import ../example/scope_exit.hpp]
[import ../example/scope_exit.cpp]
[import ../example/phoenix_factorial_local.cpp]
[import ../example/phoenix_factorial.cpp]
[import ../example/noncopyable_cxx11_lambda_error.cpp]
[import ../example/noncopyable_local_function.cpp]
[import ../example/expensive_copy_cxx11_lambda.cpp]
[import ../example/expensive_copy_local_function.cpp]
[import ../example/add_local_functor.cpp]
[import ../example/add_global_functor.cpp]
[import ../example/add_phoenix.cpp]
[import ../example/impl_tparam_tricks.cpp]
[import ../example/impl_pp_keyword.cpp]

This library allows to program functions locally, within other functions, and directly within the scope where they are needed.

[include introduction.qbk]
[include getting_started.qbk]
[include tutorial.qbk]
[include advanced_topics.qbk]
[include examples.qbk]
[include alternatives.qbk]
[include no_variadic_macros.qbk]
[include implementation.qbk]
[xinclude reference.xml]
[include release_notes.qbk]
[include bibliography.qbk]
[include acknowledgements.qbk]

