27 #ifdef EMLABCPP_USE_NLOHMANN_JSON
28 #include <nlohmann/json.hpp>
35 template <
typename T >
40 [[nodiscard]] constexpr T&
min()
45 [[nodiscard]] constexpr T
const&
min()
const
50 [[nodiscard]] constexpr T&
max()
55 [[nodiscard]] constexpr T
const&
max()
const
63 : std::array< T, 2 >{ std::move(
min ), std::move(
max ) }
68 template <
typename T,
typename Compare >
71 return comp( x, mm.
min() ) ? mm.
min() : comp( mm.
max(), x ) ? mm.
max() : x;
74 template <
typename T >
77 return clamp( x, mm, std::less{} );
80 template <
typename T,
typename... Args >
94 template <
typename T >
98 return { val, mm.
max() };
99 else if ( val > mm.
max() )
100 return { mm.
min(), val };
105 template <
typename T >
108 return mm.
min() <= val && val <= mm.
max();
115 template <
typename T >
116 struct tuple_size<
emlabcpp::min_max< T > > : std::integral_constant< std::size_t, 2 >
120 template < std::
size_t I,
typename T >
127 #ifdef EMLABCPP_USE_NLOHMANN_JSON
129 template <
typename T >
130 struct nlohmann::adl_serializer<
emlabcpp::min_max< T > >
MIT License.
Definition: impl.h:31
constexpr reference operator[](size_type const i) noexcept
Provides a reference to item at position i.
Definition: static_storage.h:136
Args const & args
Definition: min_max.h:83
constexpr min_max< T > expand(min_max< T > const &mm, T const &val)
Definition: min_max.h:95
constexpr T const & clamp(T const &x, min_max< T > const &mm, Compare &&comp)
Definition: min_max.h:69
T res
Definition: algorithm.h:505
requires(!range_container< Container >) const expr std
Returns index of an element in tuple 't', for which call to predicate f(x) holds true,...
Definition: algorithm.h:127
constexpr Derived max(vec_point_base< Derived, N > const &a, vec_point_base< Derived, N > const &b)
Definition: vec_point_base.h:229
constexpr Derived const & min(vec_point_base< Derived, N > const &a, vec_point_base< Derived, N > const &b)
Definition: vec_point_base.h:236
constexpr bool contains(Container const &cont, T const &item)
Checks if container cont contains at least one occurence of item, returns true/false.
Definition: algorithm.h:149
UnaryCallable && f
Definition: algorithm.h:161
A structure representing a range defined by a minimum and a maximum value.
Definition: min_max.h:37
constexpr min_max(T min, T max)
Definition: min_max.h:62
constexpr T const & max() const
Definition: min_max.h:55
constexpr T & min()
Definition: min_max.h:40
constexpr T & max()
Definition: min_max.h:50
T value_type
Definition: min_max.h:38
constexpr min_max()=default
constexpr T const & min() const
Definition: min_max.h:45
T type
Definition: min_max.h:123