Go to the documentation of this file.
9 #ifndef EAGINE_VALID_IF_LE_SIZE_GE0_HPP
10 #define EAGINE_VALID_IF_LE_SIZE_GE0_HPP
18 template <
typename T,
typename C>
23 return (T(0) <= x) && (x <= c.size());
28 return (T(0) <= x) && (x <= c.size() - o);
32 template <
typename X,
typename = disable_if_same_t<X, do_log>>
33 constexpr do_log(X&&) noexcept {}
35 template <
typename Log>
36 void operator()(Log& log,
const T& v,
const C& c)
const {
37 log <<
"Value " << v <<
", less than zero or "
38 <<
"greater than c.size() = " << c.size() <<
" is invalid";
46 template <
typename C,
typename T>
52 #endif // EAGINE_VALID_IF_LE_SIZE_GE0_HPP
Policy for values valid if >= 0 and <= container.size().
Definition: le_size_ge0.hpp:19
Common code is placed in this namespace.
Definition: eagine.hpp:21
auto operator()(T x, const C &c, T o) const
Indicates value validity, true if 0 <= x <= c.size() - o.
Definition: le_size_ge0.hpp:27
in_class_valid_if< T, C, valid_if_le_size_ge0_policy< T, C > > valid_if_le_size_ge0
Specialization of valid_if, for values valid if >= 0 and <= container.size().
Definition: le_size_ge0.hpp:48
auto operator()(T x, const C &c) const
Indicates value validity, true if 0 <= x <= c.size().
Definition: le_size_ge0.hpp:22
Basic template for conditionally-valid values.
Definition: base.hpp:86