Revert "draft of nttp support"

This reverts commit 0c39409da7.
This commit is contained in:
JoeyGrajciar 2019-04-18 11:35:33 +02:00
parent 11cdd72db9
commit 79417b9afc
5 changed files with 111 additions and 241 deletions

View file

@ -12,11 +12,66 @@
#include <type_traits>
namespace Catch {
template<typename T>
struct always_false : std::false_type {};
template< typename... >
struct TypeList {};
template< typename... >
struct append;
template< template<typename...> class L1
, typename...E1
, template<typename...> class L2
, typename...E2
>
struct append< L1<E1...>, L2<E2...> > {
using type = L1<E1..., E2...>;
};
template< template<typename...> class L1
, typename...E1
, template<typename...> class L2
, typename...E2
, typename...Rest
>
struct append< L1<E1...>, L2<E2...>, Rest...> {
using type = typename append< L1<E1..., E2...>, Rest... >::type;
};
template< template<typename...> class
, typename...
>
struct rewrap;
template< template<typename...> class Container
, template<typename...> class List
, typename...elems
>
struct rewrap<Container, List<elems...>> {
using type = TypeList< Container< elems... > >;
};
template< template<typename...> class Container
, template<typename...> class List
, class...Elems
, typename...Elements>
struct rewrap<Container, List<Elems...>, Elements...> {
using type = typename append<TypeList<Container<Elems...>>, typename rewrap<Container, Elements...>::type>::type;
};
template< template<typename...> class...Containers >
struct combine {
template< typename...Types >
struct with_types {
template< template <typename...> class Final >
struct into {
using type = typename append<Final<>, typename rewrap<Containers, Types...>::type...>::type;
};
};
};
template<typename T>
struct always_false : std::false_type {};
template<typename...>
void debug();
} // namespace Catch
#endif // TWOBLUECUBES_CATCH_META_HPP_INCLUDED