Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Macro BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS

BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS — Force to use C++11 lambda functions to implement scope exits.

Synopsis

// In header: <boost/scope_exit.hpp>

BOOST_SCOPE_EXIT_CONFIG_USE_LAMBDAS

Description

If programmers define this configuration macro on a C++11 compiler for which the Boost.Config macro BOOST_NO_CXX11_LAMBDAS is not defined, the BOOST_SCOPE_EXIT and BOOST_SCOPE_EXIT_TPL macros will use C++11 lambda functions to declare scope exits. By default this macro is not defined.

Warning: When scope exits are implemented using lambda functions, the syntax of the capture list follows the exact same syntax of C++11 lambda captures which is in general different from the legacy capture syntax of this library. For example, C++11 lambdas require to capture data members by capturing the object this while this library always allowed to capture data members directly. Therefore, when this configuration macro is defined, BOOST_SCOPE_EXIT and BOOST_SCOPE_EXIT_TPL are no longer backward compatible (and this is why this macro is not defined by default).

A semicolon ; can be used instead of BOOST_SCOPE_EXIT_END when this configuration macro is defined (but it is recommended to always use BOOST_SCOPE_EXIT_END so to maximize portability).

Note: This configuration macro does not control the definition of BOOST_SCOPE_EXIT_ALL which is always and automatically defined on compilers that support C++11 lambda functions.

See: BOOST_SCOPE_EXIT, BOOST_SCOPE_EXIT_TPL, BOOST_SCOPE_EXIT_END.


PrevUpHomeNext