9#ifndef TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED
10#define TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED
16#ifdef CATCH_CPP17_OR_GREATER
17 template <
typename...>
18 inline constexpr auto is_unique = std::true_type{};
20 template <
typename T,
typename... Rest>
21 inline constexpr auto is_unique<
T, Rest...> = std::bool_constant<
22 (!std::is_same_v<T, Rest> && ...) && is_unique<Rest...>
27struct is_unique : std::true_type{};
29template <
typename T0,
typename T1,
typename... Rest>
30struct is_unique<T0, T1, Rest...> : std::integral_constant
32 !std::is_same<T0, T1>::value
33 && is_unique<T0, Rest...>::value
34 && is_unique<T1, Rest...>::value
#define T(meth, val, expected)