OGLplus
(0.59.0)
a C++ wrapper for rendering APIs
eagine
valid_if
never.hpp
Go to the documentation of this file.
1
9
#ifndef EAGINE_VALID_IF_NEVER_HPP
10
#define EAGINE_VALID_IF_NEVER_HPP
11
12
#include "
decl.hpp
"
13
14
namespace
eagine
{
15
18
struct
never_valid_policy
{
19
21
template
<
typename
T>
22
constexpr
auto
operator()
(
const
T&)
const
noexcept {
23
return
false
;
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,
typename
T>
31
void
operator()
(Log& log,
const
T&)
const
{
32
log <<
"value is not valid"
;
33
}
34
};
35
};
36
40
template
<
typename
T>
41
using
never_valid
=
valid_if<T, never_valid_policy>
;
42
43
}
// namespace eagine
44
45
#endif // EAGINE_VALID_IF_NEVER_HPP
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
decl.hpp
eagine::never_valid_policy::operator()
constexpr auto operator()(const T &) const noexcept
Indicates value validity. Always returns false.
Definition:
never.hpp:22
eagine::never_valid_policy
Policy for never-valid values.
Definition:
never.hpp:18
Copyright © 2015-2021
Matúš Chochlík
.
<
chochlik -at -gmail.com
>
Documentation generated on Tue Apr 13 2021 by
Doxygen
(version 1.8.17).