isPermutationType - HaxyM/crap GitHub Wiki
crap :: isPermutationType
Defined in "crap/algorithm.d/ispermutationtype.h".
Defined in "crap/algorithm".
template <template <class, class> class Operator, class ... Types1> struct isPermutationType;
Checks if passed Types1...
are (according to comparing for equality Operator
) premutation of other Types2...
passed by with
member type (for details see isPermutationType :: with).
Template parameters
Operator
- comparator checking for equality.Types1...
- types to be checked if are forming a permutation ofTypes2...
(for details see isPermutationType :: with).
Layout
Member types
with
- give possibility to pass second set of arguments namedTypes2...
(for details see isPermutationType :: with).
Usage example
#include <crap/algorithm.d/ispermutationtype.h>
template <class ... Types> class myAwsomeVariant
{
/*...*/
template <class ... OtherTypes,
std :: enable_if_t<crap :: isPermutationType <std :: is_same, Types...> :: template with<OtherTypes...>(), void*> = nullptr>
myAwsomeVariant(const myAwsomeVariant<OtherTypes...>&);
//Allow copying from other variants if their types form permutation of this one.
/*...*/
};