OGLplus
(0.59.0)
a C++ wrapper for rendering APIs
Main Page
Modules
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
Functions
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
u
Variables
Typedefs
a
b
c
d
e
g
h
i
k
l
m
n
o
p
r
s
t
u
v
Enumerations
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
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Typedefs
a
b
c
d
e
f
g
h
i
k
m
n
o
p
r
s
t
u
v
Related Functions
o
Files
File List
File Members
All
Macros
Examples
eagine
valid_if
not_zero.hpp
Go to the documentation of this file.
1
9
#ifndef EAGINE_VALID_IF_NOT_ZERO_HPP
10
#define EAGINE_VALID_IF_NOT_ZERO_HPP
11
12
#include "
decl.hpp
"
13
14
namespace
eagine
{
15
18
template
<
typename
T>
19
struct
valid_if_nz_policy
{
20
22
constexpr
auto
operator()
(T value)
const
noexcept {
23
return
(value > T(0)) || (value < T(0));
24
}
25
26
struct
do_log {
27
template
<
typename
X,
typename
= disable_if_same_t<X, do_log>>
28
constexpr do_log(X&&) noexcept {}
29
30
template
<
typename
Log>
31
void
operator()
(Log& log,
const
T&)
const
{
32
log <<
"Value zero is invalid"
;
33
}
34
};
35
};
36
41
template
<
typename
T>
42
using
valid_if_not_zero
=
valid_if<T, valid_if_nz_policy<T>
>;
43
46
template
<
typename
T>
47
using
nonzero_t
=
valid_if_not_zero<T>
;
48
49
template
<
typename
T>
50
static
inline
auto
nonzero(T v) noexcept ->
nonzero_t<T>
{
51
return
{v};
52
}
53
54
}
// namespace eagine
55
56
#endif // EAGINE_VALID_IF_NOT_ZERO_HPP
eagine::valid_if_nz_policy
Policy class for values valid if not equal to zero.
Definition:
not_zero.hpp:19
eagine
Common code is placed in this namespace.
Definition:
eagine.hpp:21
eagine::valid_if
Primary template for conditionally valid values.
Definition:
decl.hpp:49
eagine::valid_if_nz_policy::operator()
constexpr auto operator()(T value) const noexcept
Indicates value validity, true if value != 0.
Definition:
not_zero.hpp:22
decl.hpp
Copyright © 2015-2021
Matúš Chochlík
.
<
chochlik -at -gmail.com
>
Documentation generated on Tue Apr 13 2021 by
Doxygen
(version 1.8.17).