CyberEngineMkIII
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ParameterPack.hpp
Go to the documentation of this file.
1 #pragma once
3 namespace CYB {
4  namespace API {
10  template <typename AType, typename... ARemaining> class ParameterPack {
11  public:
17  template <unsigned int AIndex, typename AUnused = void> class Indexer;
18  public:
23  static constexpr unsigned int Size(void);
24 
29  template <typename AOtherType, typename... AOtherTypes> static constexpr bool Equal(void) {
31  && ParameterPack<ARemaining...>::template Equal<AOtherTypes...>()
32  && std::is_same<AOtherType,AType>::value;
33  }
38  template <typename AOtherPP> static constexpr bool PPEqual(void) {
39  return AOtherPP::template Equal<AType, ARemaining...>();
40  }
41  };
42  };
43 };
44 
45 #include "ParameterPack.inl"
static constexpr bool PPEqual(void)
Check total equivalance with another ParameterPack specialization.
A class which can be used to get the type at AIndex of the pack.
static constexpr bool Equal(void)
Check total equivalance with another parameter pack.
Contains information about a template parameter pack.
static constexpr unsigned int Size(void)
Returns the size of the parameter pack.