PerceMon
utils.hpp
1
#pragma once
2
3
#ifndef __PERCEMON_UTILS_HPP__
4
#define __PERCEMON_UTILS_HPP__
5
6
#include <algorithm>
7
#include <iterator>
8
#include <type_traits>
9
#include <vector>
10
11
namespace
percemon::utils {
12
16
template
<
typename
T,
typename
... Args>
17
struct
is_one_of
: std::disjunction<std::is_same<std::decay_t<T>, Args>...> {};
18
template
<
typename
T,
typename
... Args>
19
inline
constexpr
bool
is_one_of_v =
is_one_of
<T, Args...>::value;
20
26
template
<
class
... Ts>
27
struct
overloaded
: Ts... {
28
using
Ts::operator()...;
29
};
30
template
<
class
... Ts>
31
overloaded
(Ts...)->overloaded<Ts...>;
32
33
}
// namespace percemon::utils
34
35
#endif
/* end of include guard: __PERCEMON_UTILS_HPP__ */
percemon::utils::is_one_of
Definition:
utils.hpp:17
percemon::utils::overloaded
Definition:
utils.hpp:27
include
percemon
utils.hpp
Generated by
1.9.3