CYD-UI
A C++ library for building native graphic user interfaces
Loading...
Searching...
No Matches
operators.inc
Go to the documentation of this file.
1
2//* for dimension-T
3
4template <typename T, typename V>
5requires (not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
7 return cydui::dimensions::dimensional_operators::OP_FUNCTION(value, dim);
8}
9
10template <typename T>
12 return cydui::dimensions::dimensional_operators::OP_FUNCTION(dim1, dim2);
13}
14
15template <typename T, typename V>
16requires (not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
18 return cydui::dimensions::dimensional_operators::OP_FUNCTION(dim, value);
19}
20
21//* for expression-T
22template <typename T, typename V>
23requires (not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
25 return cydui::dimensions::dimensional_operators::OP_FUNCTION(value, expr);
26}
27
28template <typename T, typename V>
29requires (not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
31 return cydui::dimensions::dimensional_operators::OP_FUNCTION(value, std::forward<cydui::dimensions::expression<T>&&>(expr));
32}
33
34template <typename T>
36 return cydui::dimensions::dimensional_operators::OP_FUNCTION(expr1, expr2);
37}
38
39template <typename T>
41 return cydui::dimensions::dimensional_operators::OP_FUNCTION(std::forward<cydui::dimensions::expression<T>&&>(expr1), expr2);
42}
43
44template <typename T, typename V>
45 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
47operator OPERATOR(const cydui::dimensions::expression<T>& expr, V value) {
48 return cydui::dimensions::dimensional_operators::OP_FUNCTION(expr, value);
49}
50
51//* for expression-dimension
52template <typename T>
55) {
56 return cydui::dimensions::dimensional_operators::OP_FUNCTION(dim, expr);
57}
58
59template <typename T>
62) {
63 return cydui::dimensions::dimensional_operators::OP_FUNCTION(expr, dim);
64}
65
66
67// Parameters
68template <typename S>
70operator OPERATOR(const cydui::dimensions::dimension<S>& lhs, const cydui::dimensions::parameter<S>& rhs) {
71 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
72}
73
74template <typename S>
76operator OPERATOR(const cydui::dimensions::parameter<S>& lhs, const cydui::dimensions::dimension<S>& rhs) {
77 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
78}
79
80template <typename S>
82operator OPERATOR(const cydui::dimensions::expression<S>& lhs, const cydui::dimensions::parameter<S>& rhs) {
83 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
84}
85
86template <typename S>
88operator OPERATOR(const cydui::dimensions::parameter<S>& lhs, const cydui::dimensions::expression<S>& rhs) {
89 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
90}
91
92template <typename S, typename V>
93 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
94cydui::dimensions::expression<S> operator OPERATOR(V lhs, const cydui::dimensions::parameter<S>& rhs) {
95 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
96}
97
98template <typename S, typename V>
99 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
100cydui::dimensions::expression<S> operator OPERATOR(const cydui::dimensions::parameter<S>& lhs, V rhs) {
101 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
102}
103
104template <typename S>
106operator OPERATOR(const cydui::dimensions::parameter<S>& lhs, const cydui::dimensions::parameter<S>& rhs) {
107 return cydui::dimensions::dimensional_operators::OP_FUNCTION(lhs, rhs);
108}
#define OPERATOR
Definition _types.cppm:98