#include #define SHOW_ERROR #ifdef SHOW_ERROR template< typename the_argument_type> inline the_argument_type do_exit_scope( the_argument_type the_argument_value) { int value = 0; BOOST_SCOPE_EXIT( ( &value)) { value = 123; } BOOST_SCOPE_EXIT_END; return the_argument_value; } #else inline int do_exit_scope( int the_argument_value) { int value = 0; BOOST_SCOPE_EXIT( ( &value)) { value = 123; } BOOST_SCOPE_EXIT_END; return the_argument_value; } #endif int main( int argc, char **argv) { return 0; }