RavEngine
Loading...
Searching...
No Matches
Validator.hpp
1#pragma once
2#include <type_traits>
3#include <tuple>
4
5namespace RavEngine {
6 template<typename ... A> struct ValidatorProvider;
7
8 template <typename T, typename ... A>
9 concept TinVariadic = std::disjunction_v<std::is_same<T, A>...>;
10
11 template<typename ... A>
12 struct Validator {
13 friend struct ValidatorProvider<A...>; // access to default constructor
14
15 using types = std::tuple<A...>;
16
17 template<typename T>
18 constexpr static bool IsValid() {
19 return TinVariadic<T, A...>;
20 }
21
22 // no copy, no assign
23 Validator(const Validator&) = delete;
24 void operator=(Validator const&) = delete;
25
26 private:
27 Validator() {};
28 // private move
29 Validator(Validator&&) = default;
30 };
31
32
33}
Definition Validator.hpp:9
Definition Animation.hpp:6
Definition World.hpp:156
Definition Validator.hpp:12