@@ -105,6 +105,14 @@ namespace Catch {
105105 #__VA_ARGS__##_catch_sr ); \
106106 varName.captureValues( 0 , __VA_ARGS__ )
107107
108+ // /////////////////////////////////////////////////////////////////////////////
109+ #define INTERNAL_CATCH_UNSCOPED_CAPTURE ( varName, macroName, ... ) \
110+ Catch::getResultCapture ().emplaceUnscopedMessage(Catch::Capturer varName ( macroName##_catch_sr, \
111+ CATCH_INTERNAL_LINEINFO, \
112+ Catch::ResultWas::Info, \
113+ #__VA_ARGS__##_catch_sr ); \
114+ varName.captureValues( 0 , __VA_ARGS__ ))
115+
108116// /////////////////////////////////////////////////////////////////////////////
109117#define INTERNAL_CATCH_INFO ( macroName, log ) \
110118 const Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME ( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log )
@@ -120,27 +128,32 @@ namespace Catch {
120128 #define CATCH_UNSCOPED_INFO ( msg ) INTERNAL_CATCH_UNSCOPED_INFO( " CATCH_UNSCOPED_INFO" , msg )
121129 #define CATCH_WARN ( msg ) INTERNAL_CATCH_MSG( " CATCH_WARN" , Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
122130 #define CATCH_CAPTURE ( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), " CATCH_CAPTURE" , __VA_ARGS__ )
131+ #define CATCH_UNSCOPED_CAPTURE ( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), " CATCH_UNSCOPED_CAPTURE" , __VA_ARGS__ )
123132
124133#elif defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
125134
126135 #define CATCH_INFO ( msg ) (void )(0 )
127136 #define CATCH_UNSCOPED_INFO ( msg ) (void )(0 )
128137 #define CATCH_WARN ( msg ) (void )(0 )
129138 #define CATCH_CAPTURE ( ... ) (void )(0 )
139+ #define CATCH_UNSCOPED_CAPTURE ( ... ) (void )(0 )
130140
131141#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && !defined(CATCH_CONFIG_DISABLE)
132142
133143 #define INFO ( msg ) INTERNAL_CATCH_INFO( " INFO" , msg )
134144 #define UNSCOPED_INFO ( msg ) INTERNAL_CATCH_UNSCOPED_INFO( " UNSCOPED_INFO" , msg )
135145 #define WARN ( msg ) INTERNAL_CATCH_MSG( " WARN" , Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
136146 #define CAPTURE ( ... ) INTERNAL_CATCH_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), " CAPTURE" , __VA_ARGS__ )
147+ #define UNSCOPED_CAPTURE ( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE( INTERNAL_CATCH_UNIQUE_NAME(capturer), " UNSCOPED_CAPTURE" , __VA_ARGS__ )
148+
137149
138150#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
139151
140152 #define INFO ( msg ) (void )(0 )
141153 #define UNSCOPED_INFO ( msg ) (void )(0 )
142154 #define WARN ( msg ) (void )(0 )
143155 #define CAPTURE ( ... ) (void )(0 )
156+ #define UNSCOPED_CAPTURE ( ... ) (void )(0 )
144157
145158#endif // end of user facing macro declarations
146159
0 commit comments