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

lt_size.hpp
Go to the documentation of this file.
1 
9 #ifndef EAGINE_VALID_IF_LT_SIZE_HPP
10 #define EAGINE_VALID_IF_LT_SIZE_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 x < c.size();
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& v, const C& c) const {
32  log << "Value " << v << ", "
33  << "not less than c.size() = " << c.size() << " is invalid";
34  }
35  };
36 };
37 
44 template <typename C, typename T>
46 
47 } // namespace eagine
48 
49 #endif // EAGINE_VALID_IF_LT_SIZE_HPP
Common code is placed in this namespace.
Definition: eagine.hpp:21
Policy class for values valid if less than container.size().
Definition: lt_size.hpp:19
Basic template for conditionally-valid values.
Definition: base.hpp:86
auto operator()(T x, const C &c) const
Indicates value validity, true x < c.size().
Definition: lt_size.hpp:22

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