@@ -105,6 +105,15 @@ 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+
116+
108117// /////////////////////////////////////////////////////////////////////////////
109118#define INTERNAL_CATCH_INFO ( macroName, log ) \
110119 const Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME ( scopedMessage )( Catch::MessageBuilder( macroName##_catch_sr, CATCH_INTERNAL_LINEINFO , Catch::ResultWas::Info ) << log )
@@ -120,27 +129,33 @@ namespace Catch {
120129 #define CATCH_UNSCOPED_INFO ( msg ) INTERNAL_CATCH_UNSCOPED_INFO ( " CATCH_UNSCOPED_INFO" , msg )
121130 #define CATCH_WARN ( msg ) INTERNAL_CATCH_MSG ( " CATCH_WARN" , Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
122131 #define CATCH_CAPTURE ( ... ) INTERNAL_CATCH_CAPTURE ( INTERNAL_CATCH_UNIQUE_NAME (capturer), " CATCH_CAPTURE" , __VA_ARGS__ )
132+ #define CATCH_UNSCOPED_CAPTURE ( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE ( INTERNAL_CATCH_UNIQUE_NAME (capturer), " CATCH_UNSCOPED_CAPTURE" , __VA_ARGS__ )
123133
124134#elif defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
125135
126136 #define CATCH_INFO ( msg ) (void )(0 )
127137 #define CATCH_UNSCOPED_INFO ( msg ) (void )(0 )
128138 #define CATCH_WARN ( msg ) (void )(0 )
129139 #define CATCH_CAPTURE ( ... ) (void )(0 )
140+ #define CATCH_UNSCOPED_CAPTURE ( ... ) (void )(0 )
141+
130142
131143#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && !defined(CATCH_CONFIG_DISABLE)
132144
133145 #define INFO ( msg ) INTERNAL_CATCH_INFO ( " INFO" , msg )
134146 #define UNSCOPED_INFO ( msg ) INTERNAL_CATCH_UNSCOPED_INFO ( " UNSCOPED_INFO" , msg )
135147 #define WARN ( msg ) INTERNAL_CATCH_MSG ( " WARN" , Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg )
136148 #define CAPTURE ( ... ) INTERNAL_CATCH_CAPTURE ( INTERNAL_CATCH_UNIQUE_NAME (capturer), " CAPTURE" , __VA_ARGS__ )
149+ #define UNSCOPED_CAPTURE ( ... ) INTERNAL_CATCH_UNSCOPED_CAPTURE ( INTERNAL_CATCH_UNIQUE_NAME (capturer), " UNSCOPED_CAPTURE" , __VA_ARGS__ )
150+
137151
138152#elif !defined(CATCH_CONFIG_PREFIX_MESSAGES) && defined(CATCH_CONFIG_DISABLE)
139153
140154 #define INFO ( msg ) (void )(0 )
141155 #define UNSCOPED_INFO ( msg ) (void )(0 )
142156 #define WARN ( msg ) (void )(0 )
143157 #define CAPTURE ( ... ) (void )(0 )
158+ #define UNSCOPED_CAPTURE ( ... ) (void )(0 )
144159
145160#endif // end of user facing macro declarations
146161
0 commit comments