cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
less.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-2-Clause
2
3#ifndef pRC_CORE_BASIC_FUNCTIONS_LESS_H
4#define pRC_CORE_BASIC_FUNCTIONS_LESS_H
5
10
11namespace pRC
12{
13 template<class X, template<class> class T>
14 requires IsSame<T<Void>, Identity<>> || IsSame<T<Void>, Unit<>> ||
15 IsSame<T<Void>, Zero<>>
16 static inline constexpr auto operator<(X &&a, T<Void> const)
17 {
18 return forward<X>(a) < T<RemoveReference<X>>()();
19 }
20
21 template<class X, template<class> class T>
22 requires IsSame<T<Void>, Identity<>> || IsSame<T<Void>, Unit<>> ||
23 IsSame<T<Void>, Zero<>>
24 static inline constexpr auto operator<(T<Void> const, X &&b)
25 {
26 return T<RemoveReference<X>>()() < forward<X>(b);
27 }
28
29 template<template<class> class TA, template<class> class TB>
30 requires((IsSame<TA<Void>, Identity<>> || IsSame<TA<Void>, Unit<>> ||
31 IsSame<TA<Void>, Zero<>>) &&
32 (IsSame<TB<Void>, Identity<>> || IsSame<TB<Void>, Unit<>> ||
33 IsSame<TB<Void>, Zero<>>))
34 static inline constexpr auto operator<(TA<Void> const, TB<Void> const)
35 {
36 return TA<Size>()() < TB<Size>()();
37 }
38}
39#endif // pRC_CORE_BASIC_FUNCTIONS_LESS_H
Definition value.hpp:12
Definition cholesky.hpp:10
static constexpr auto operator<(X &&a, T< Void > const)
Definition less.hpp:16