OGLplus  (0.59.0) a C++ wrapper for rendering APIs

lt_size_ge0.hpp
Go to the documentation of this file.
1 
9 #ifndef EAGINE_VALID_IF_LT_SIZE_GE0_HPP
10 #define EAGINE_VALID_IF_LT_SIZE_GE0_HPP
11 
12 #include "in_class.hpp"
13 
14 namespace eagine {
15 
18 template <typename T, typename C>
20 
22  auto operator()(T x, const C& c) const {
23  return (T(0) <= x) && (x < c.size());
24  }
25 
27  auto operator()(T x, const C& c, T o) const {
28  return (T(0) <= x) && (x < c.size() - o);
29  }
30 
31  struct do_log {
32  template <typename X, typename = disable_if_same_t<X, do_log>>
33  constexpr do_log(X&&) noexcept {}
34 
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  << "not less than c.size() = " << c.size() << " is invalid";
39  }
40  };
41 };
42 
46 template <typename C, typename T>
49 
50 } // namespace eagine
51 
52 #endif // EAGINE_VALID_IF_LT_SIZE_GE0_HPP
Common code is placed in this namespace.
Definition: eagine.hpp:21
auto operator()(T x, const C &c) const
Indicates value validity, true if 0 <= x < c.size().
Definition: lt_size_ge0.hpp:22
auto operator()(T x, const C &c, T o) const
Indicates value validity, true if 0 <= x < c.size() - o.
Definition: lt_size_ge0.hpp:27
Policy for values valid if >= 0 and < container.size().
Definition: lt_size_ge0.hpp:19
in_class_valid_if< T, C, valid_if_lt_size_ge0_policy< T, C > > valid_if_lt_size_ge0
Specialization of valid_if, for values valid if >= 0 and < container.size().
Definition: lt_size_ge0.hpp:48
Basic template for conditionally-valid values.
Definition: base.hpp:86

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).