Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Main Page
User Manual
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
u
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Typedefs
a
b
c
k
m
n
p
t
Enumerations
Enumerator
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
i
l
m
p
r
s
t
v
w
Enumerations
Enumerator
a
b
d
f
h
i
l
m
n
o
p
r
s
v
w
Related Symbols
Files
File List
File Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Functions
a
b
c
d
e
g
i
l
m
o
p
s
u
v
Variables
c
e
f
h
i
l
m
n
o
p
s
u
v
Typedefs
a
b
c
e
f
i
k
m
n
p
s
t
u
v
Enumerations
Enumerator
Macros
a
b
c
d
e
f
h
i
n
u
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
src
Def
TypeTraits.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <Settings/NamespaceSettings.hpp>
4
5
#include <AH/STL/type_traits>
6
#include <AH/STL/utility>
7
8
BEGIN_CS_NAMESPACE
9
10
template
<
class
...>
11
using
void_t
= void;
12
13
template
<
class
,
class
=
void
>
14
struct
has_method_begin
: std::false_type {};
15
16
template
<
class
T>
17
struct
has_method_begin<T, void_t<decltype(std::declval<T>
().begin())>>
18
: std::true_type {};
17
struct
has_method_begin<T, void_t<decltype(std::declval<T>
().begin())>> {
…
};
19
21
template
<
class
T>
22
typename
std::enable_if<has_method_begin<T>::value>::type
23
begin_if_possible
(T &t) {
24
t.begin();
25
}
23
begin_if_possible
(T &t) {
…
}
26
27
template
<
class
T>
28
typename
std::enable_if<!has_method_begin<T>::value>::type
29
begin_if_possible
(T &) {}
30
31
END_CS_NAMESPACE
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
begin_if_possible
std::enable_if< has_method_begin< T >::value >::type begin_if_possible(T &t)
Calls the begin() method of t if that method exists.
Definition
TypeTraits.hpp:23
void_t
void void_t
Definition
TypeTraits.hpp:11
has_method_begin
Definition
TypeTraits.hpp:14
Generated by
1.10.0