Skip to content

Commit b9b1296

Browse files
fix: move struct TestName of INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2 into the anonymous namespace
1 parent b0c9896 commit b9b1296

1 file changed

Lines changed: 35 additions & 35 deletions

File tree

src/catch2/internal/catch_template_test_registry.hpp

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -245,42 +245,42 @@
245245
INTERNAL_CATCH_EXPAND_VARGS( INTERNAL_CATCH_TEMPLATE_TEST_CASE_METHOD_2( INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_CLASS_ ), INTERNAL_CATCH_UNIQUE_NAME( CATCH2_INTERNAL_TEMPLATE_TEST_ ) , ClassName, Name, Tags, Signature, __VA_ARGS__ ) )
246246
#endif
247247

248-
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\
249-
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
250-
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
251-
CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
252-
CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \
253-
CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \
254-
template<typename TestType> \
255-
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \
256-
void test();\
257-
};\
258-
namespace {\
259-
namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestNameClass) {\
260-
INTERNAL_CATCH_TYPE_GEN \
261-
INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\
262-
template<typename...Types>\
263-
struct TestNameClass{\
264-
void reg_tests(){\
265-
std::size_t index = 0;\
266-
using expander = std::size_t[];\
267-
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
268-
constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
269-
constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
270-
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + '<' + types_list[index % num_types] + '>', Tags } ), index++)... };/* NOLINT */ \
271-
}\
272-
};\
273-
static const int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
274-
using TestInit = typename create<TestNameClass, decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS(TmplTypes)>(Catch::Detail::priority_tag<1>{})), TypeList<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(INTERNAL_CATCH_REMOVE_PARENS(TypesList))>>::type;\
275-
TestInit t;\
276-
t.reg_tests();\
277-
return 0;\
278-
}(); \
279-
}\
280-
}\
281-
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
248+
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2(TestNameClass, TestName, ClassName, Name, Tags, Signature, TmplTypes, TypesList)\
249+
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
250+
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
251+
CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \
252+
CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \
253+
CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \
254+
namespace {\
282255
template<typename TestType> \
283-
void TestName<TestType>::test()
256+
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName <TestType>) { \
257+
void test();\
258+
};\
259+
namespace INTERNAL_CATCH_MAKE_NAMESPACE(TestNameClass) {\
260+
INTERNAL_CATCH_TYPE_GEN \
261+
INTERNAL_CATCH_NTTP_GEN(INTERNAL_CATCH_REMOVE_PARENS(Signature))\
262+
template<typename...Types>\
263+
struct TestNameClass{\
264+
void reg_tests(){\
265+
std::size_t index = 0;\
266+
using expander = std::size_t[];\
267+
constexpr char const* tmpl_types[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TmplTypes))};\
268+
constexpr char const* types_list[] = {CATCH_REC_LIST(INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS, INTERNAL_CATCH_REMOVE_PARENS(TypesList))};\
269+
constexpr auto num_types = sizeof(types_list) / sizeof(types_list[0]);\
270+
(void)expander{(Catch::AutoReg( Catch::makeTestInvoker( &TestName<Types>::test ), CATCH_INTERNAL_LINEINFO, #ClassName, Catch::NameAndTags{ Name " - " + std::string(tmpl_types[index / num_types]) + '<' + types_list[index % num_types] + '>', Tags } ), index++)... };/* NOLINT */ \
271+
}\
272+
};\
273+
static const int INTERNAL_CATCH_UNIQUE_NAME( globalRegistrar ) = [](){\
274+
using TestInit = typename create<TestNameClass, decltype(get_wrapper<INTERNAL_CATCH_REMOVE_PARENS(TmplTypes)>(Catch::Detail::priority_tag<1>{})), TypeList<INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(INTERNAL_CATCH_REMOVE_PARENS(TypesList))>>::type;\
275+
TestInit t;\
276+
t.reg_tests();\
277+
return 0;\
278+
}(); \
279+
}\
280+
}\
281+
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
282+
template<typename TestType> \
283+
void TestName<TestType>::test()
284284

285285
#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR
286286
#define INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD( ClassName, Name, Tags, ... )\

0 commit comments

Comments
 (0)