[#BDLB_SCOPEEXIT_USES_MODERN_CPP]
= BDLB&lowbar;SCOPEEXIT&lowbar;USES&lowbar;MODERN&lowbar;CPP
:mrdocs:

This macro determines if we have a sufficiently functional C&plus;&plus;11 or later compiler so the type&hyphen;deducing `auto` with factory&hyphen;method can be compiled and works as expected&period; When the macro is not defined (C&plus;&plus;03 form) no utility `struct` (therefore no factory method) will be defined by this component and the variable definition macros (for Proctor and Guard) will use `bdlb&colon;&colon;ScopeExitAny`&period; When this macro is defined (C&plus;&plus;11 or later that has sufficiently operation rvalue references and type&hyphen;deducing `auto` keyword implementation) the factory method and its utility `struct` will be defined and the variable definition macros will use `auto` to determine the type of the `bdlb&colon;&colon;ScopeExit` variable&period; This macro is only internally in this component header and therefore it is undefined at the end of the file&period;

== Synopsis

Declared in `&lt;bdlb&lowbar;scopeexit&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
#define BDLB&lowbar;SCOPEEXIT&lowbar;USES&lowbar;MODERN&lowbar;CPP

----


[.small]#Created with https://www.mrdocs.com[MrDocs]#
