13 #ifndef TINYMPL_UNORDERED_EQUAL_HPP
14 #define TINYMPL_UNORDERED_EQUAL_HPP
16 #include <tinympl/variadic/count.hpp>
17 #include <tinympl/variadic/all_of.hpp>
18 #include <tinympl/as_sequence.hpp>
19 #include <tinympl/sequence.hpp>
20 #include <tinympl/logical_and.hpp>
21 #include <tinympl/variadic/count.hpp>
22 #include <tinympl/variadic/all_of.hpp>
23 #include <type_traits>
39 template<
class SequenceA,
class SequenceB>
41 unordered_equal< as_sequence_t<SequenceA>, as_sequence_t<SequenceB> > {};
44 template<
class SequenceA,
class SequenceB>
struct unordered_equal_impl;
46 template<
class ... As,
class ... Bs>
51 typedef std::integral_constant < bool,
57 typedef typename logical_and <
58 typename variadic::all_of< check_t, As...>::type,
59 typename variadic::all_of< check_t, Bs...>::type >::type type;
63 template<
class ... As,
class ... Bs>
64 struct unordered_equal<sequence<As...>, sequence<Bs...> > :
65 detail::unordered_equal_impl< sequence<As...>, sequence<Bs...> >::type
70 #endif // TINYMPL_UNORDERED_EQUAL_HPP
Counts the number of elements in a sequence equal to a given one.
Definition: count.hpp:36
Determines whether it is possible to reorder the sequence A to match exactly the sequence B ...
Definition: unordered_equal.hpp:40
The main sequence type.
Definition: sequence.hpp:28