Loading...
Searching...
No Matches
include
fluentcpp
traits.h
Go to the documentation of this file.
1
23
24
#ifndef FCPP_TRAITS_H
25
#define FCPP_TRAITS_H
26
27
#include <iterator>
28
#include <type_traits>
29
30
namespace
fcpp::traits {
31
32
template
<
typename
T,
typename
=
void
>
33
struct
is_additive
: std::false_type {};
34
35
template
<
typename
T>
36
struct
is_additive
<
37
T, typename std::enable_if<
38
true,
39
decltype(std::declval<T &>() + std::declval<T &>(), (void)0)>::type>
40
: std::true_type {};
41
42
template
<
typename
T,
typename
=
void
>
43
struct
is_equality_comparable
: std::false_type {};
44
45
template
<
typename
T>
46
struct
is_equality_comparable
<
47
T, typename std::enable_if<
48
true,
49
decltype(std::declval<T &>() == std::declval<T &>(), (void)0)>::type>
50
: std::true_type {};
51
52
template
<
typename
T,
typename
=
void
>
53
struct
is_less_than_comparable
: std::false_type {};
54
55
template
<
typename
T>
56
struct
is_less_than_comparable
<
57
T, typename std::enable_if<
58
true,
59
decltype(std::declval<T &>() < std::declval<T &>(), (void)0)>::type>
60
: std::true_type {};
61
62
}
// namespace fcpp::traits
63
64
#endif
// FCPP_TRAITS_H
fcpp::traits::is_additive
Definition
traits.h:33
fcpp::traits::is_equality_comparable
Definition
traits.h:43
fcpp::traits::is_less_than_comparable
Definition
traits.h:53