Use template variables for our trait-likes in Clara

This commit is contained in:
Martin Hořeňovský 2025-07-15 11:49:39 +02:00
parent 050e14dce0
commit b9c018b38a
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
8 changed files with 92 additions and 94 deletions

View File

@ -66,15 +66,13 @@ namespace Catch {
}; };
template <typename F, typename = void> template <typename F, typename = void>
struct is_unary_function : std::false_type {}; static constexpr bool is_unary_function_v = false;
template <typename F> template <typename F>
struct is_unary_function< static constexpr bool is_unary_function_v<
F, F,
Catch::Detail::void_t<decltype( Catch::Detail::void_t<decltype( std::declval<F>()(
std::declval<F>()( fake_arg() ) ) fake_arg() ) )>> = true;
>
> : std::true_type {};
// Traits for extracting arg and return type of lambdas (for single // Traits for extracting arg and return type of lambdas (for single
// argument lambdas) // argument lambdas)
@ -507,14 +505,14 @@ namespace Catch {
template <typename T, template <typename T,
typename = typename std::enable_if_t< typename = typename std::enable_if_t<
!Detail::is_unary_function<T>::value>> !Detail::is_unary_function_v<T>>>
ParserRefImpl( T& ref, StringRef hint ): ParserRefImpl( T& ref, StringRef hint ):
m_ref( std::make_shared<BoundValueRef<T>>( ref ) ), m_ref( std::make_shared<BoundValueRef<T>>( ref ) ),
m_hint( hint ) {} m_hint( hint ) {}
template <typename LambdaT, template <typename LambdaT,
typename = typename std::enable_if_t< typename = typename std::enable_if_t<
Detail::is_unary_function<LambdaT>::value>> Detail::is_unary_function_v<LambdaT>>>
ParserRefImpl( LambdaT const& ref, StringRef hint ): ParserRefImpl( LambdaT const& ref, StringRef hint ):
m_ref( std::make_shared<BoundLambda<LambdaT>>( ref ) ), m_ref( std::make_shared<BoundLambda<LambdaT>>( ref ) ),
m_hint( hint ) {} m_hint( hint ) {}
@ -581,7 +579,7 @@ namespace Catch {
template <typename LambdaT, template <typename LambdaT,
typename = typename std::enable_if_t< typename = typename std::enable_if_t<
Detail::is_unary_function<LambdaT>::value>> Detail::is_unary_function_v<LambdaT>>>
Opt( LambdaT const& ref, StringRef hint ): Opt( LambdaT const& ref, StringRef hint ):
ParserRefImpl( ref, hint ) {} ParserRefImpl( ref, hint ) {}
@ -591,7 +589,7 @@ namespace Catch {
template <typename T, template <typename T,
typename = typename std::enable_if_t< typename = typename std::enable_if_t<
!Detail::is_unary_function<T>::value>> !Detail::is_unary_function_v<T>>>
Opt( T& ref, StringRef hint ): Opt( T& ref, StringRef hint ):
ParserRefImpl( ref, hint ) {} ParserRefImpl( ref, hint ) {}

View File

@ -2534,18 +2534,18 @@ Skip.tests.cpp:<line number>: skipped:
Skip.tests.cpp:<line number>: skipped: Skip.tests.cpp:<line number>: skipped:
Skip.tests.cpp:<line number>: failed: explicitly Skip.tests.cpp:<line number>: failed: explicitly
loose text artifact loose text artifact
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<int>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<int>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<std::string const&>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<std::string const&>)'
Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'Previous info should not be seen' Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'Previous info should not be seen'
Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'previous unscoped info SHOULD not be seen' Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'previous unscoped info SHOULD not be seen'
Misc.tests.cpp:<line number>: passed: l == std::numeric_limits<long long>::max() for: 9223372036854775807 (0x<hex digits>) Misc.tests.cpp:<line number>: passed: l == std::numeric_limits<long long>::max() for: 9223372036854775807 (0x<hex digits>)

View File

@ -2526,18 +2526,18 @@ Skip.tests.cpp:<line number>: failed: explicitly
Skip.tests.cpp:<line number>: skipped: Skip.tests.cpp:<line number>: skipped:
Skip.tests.cpp:<line number>: skipped: Skip.tests.cpp:<line number>: skipped:
Skip.tests.cpp:<line number>: failed: explicitly Skip.tests.cpp:<line number>: failed: explicitly
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>'
Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value' Clara.tests.cpp:<line number>: passed: with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<int>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<int>)'
Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function<std::string const&>::value)' Clara.tests.cpp:<line number>: passed: with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<std::string const&>)'
Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'Previous info should not be seen' Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'Previous info should not be seen'
Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'previous unscoped info SHOULD not be seen' Message.tests.cpp:<line number>: failed: explicitly with 1 message: 'previous unscoped info SHOULD not be seen'
Misc.tests.cpp:<line number>: passed: l == std::numeric_limits<long long>::max() for: 9223372036854775807 (0x<hex digits>) Misc.tests.cpp:<line number>: passed: l == std::numeric_limits<long long>::max() for: 9223372036854775807 (0x<hex digits>)

View File

@ -16704,51 +16704,51 @@ Clara.tests.cpp:<line number>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<int>::value) !(Catch::Clara::Detail::is_unary_function_v<int>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<std::string const&>::value) !(Catch::Clara::Detail::is_unary_function_v<std::string const&>)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
just failure just failure

View File

@ -16696,51 +16696,51 @@ Clara.tests.cpp:<line number>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value) !(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<int>::value) !(Catch::Clara::Detail::is_unary_function_v<int>)
Clara.tests.cpp:<line number>: PASSED: Clara.tests.cpp:<line number>: PASSED:
with message: with message:
!(Catch::Clara::Detail::is_unary_function<std::string const&>::value) !(Catch::Clara::Detail::is_unary_function_v<std::string const&>)
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
just failure just failure

View File

@ -4019,29 +4019,29 @@ ok {test-number} - # SKIP
not ok {test-number} - explicitly not ok {test-number} - explicitly
loose text artifact loose text artifact
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<int>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<int>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<std::string const&>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<std::string const&>)'
# just failure # just failure
not ok {test-number} - explicitly with 1 message: 'Previous info should not be seen' not ok {test-number} - explicitly with 1 message: 'Previous info should not be seen'
# just failure after unscoped info # just failure after unscoped info

View File

@ -4011,29 +4011,29 @@ ok {test-number} - # SKIP
# failing in some unskipped sections causes entire test case to fail # failing in some unskipped sections causes entire test case to fail
not ok {test-number} - explicitly not ok {test-number} - explicitly
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value' ok {test-number} - with 1 message: 'Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<int>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<int>)'
# is_unary_function # is_unary_function
ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function<std::string const&>::value)' ok {test-number} - with 1 message: '!(Catch::Clara::Detail::is_unary_function_v<std::string const&>)'
# just failure # just failure
not ok {test-number} - explicitly with 1 message: 'Previous info should not be seen' not ok {test-number} - explicitly with 1 message: 'Previous info should not be seen'
# just failure after unscoped info # just failure after unscoped info

View File

@ -25,19 +25,19 @@ TEST_CASE("is_unary_function", "[clara][compilation]") {
auto nullary1 = []() {}; auto nullary1 = []() {};
auto nullary2 = []() {return 42;}; auto nullary2 = []() {return 42;};
STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function<decltype(unary1)>::value); STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function_v<decltype(unary1)>);
STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function<decltype(unary2)>::value); STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function_v<decltype(unary2)>);
STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function<decltype(unary3)>::value); STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function_v<decltype(unary3)>);
STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function<decltype(unary4)>::value); STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function_v<decltype(unary4)>);
STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function<decltype(unary5)>::value); STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function_v<decltype(unary5)>);
STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function<decltype(unary6)>::value); STATIC_REQUIRE(Catch::Clara::Detail::is_unary_function_v<decltype(unary6)>);
STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function<decltype(binary1)>::value); STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function_v<decltype(binary1)>);
STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function<decltype(binary2)>::value); STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function_v<decltype(binary2)>);
STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function<decltype(nullary1)>::value); STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function_v<decltype(nullary1)>);
STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function<decltype(nullary2)>::value); STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function_v<decltype(nullary2)>);
STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function<int>::value); STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function_v<int>);
STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function<std::string const&>::value); STATIC_REQUIRE_FALSE(Catch::Clara::Detail::is_unary_function_v<std::string const&>);
} }