4template <
typename T,
typename V>
5 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
13 const_value->const_value = value;
16 dim_->dimension = dim.impl_;
19 node->children.push_back(const_value);
20 node->children.push_back(dim_);
33 expr.add_dependency(dim2.impl_);
36 dim1_->dimension = dim1.impl_;
39 dim2_->dimension = dim2.impl_;
42 node->children.push_back(dim1_);
43 node->children.push_back(dim2_);
49template <
typename T,
typename V>
50 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
58 dim_->dimension = dim.impl_;
61 const_value->const_value = value;
65 node->children.push_back(dim_);
66 node->children.push_back(const_value);
73template <
typename T,
typename V>
74 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
81 const_value->const_value = value;
84 node->children.push_back(const_value);
85 node->children.push_back(expr_.tree_);
88 expr_.dependencies_.insert(expr.dependencies_.begin(), expr.dependencies_.end());
89 expr_.parameters_.insert(expr.parameters_.begin(), expr.parameters_.end());
93template <
typename T,
typename V>
94 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
99 const_value->const_value = value;
102 node->children.push_back(const_value);
103 node->children.push_back(expr.tree_);
118 node->children.push_back(expr1.tree_);
119 node->children.push_back(expr2.tree_);
122 expr.dependencies_.insert(expr1.dependencies_.begin(), expr1.dependencies_.end());
123 expr.dependencies_.insert(expr2.dependencies_.begin(), expr2.dependencies_.end());
124 expr.parameters_.insert(expr1.parameters_.begin(), expr1.parameters_.end());
125 expr.parameters_.insert(expr2.parameters_.begin(), expr2.parameters_.end());
135 node->children.push_back(expr1.tree_);
136 node->children.push_back(expr2.tree_);
139 expr1.dependencies_.insert(expr2.dependencies_.begin(), expr2.dependencies_.end());
140 expr1.parameters_.insert(expr2.parameters_.begin(), expr2.parameters_.end());
144template <
typename T,
typename V>
145 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
152 const_value->const_value = value;
155 node->children.push_back(expr1.tree_);
156 node->children.push_back(const_value);
159 expr.dependencies_.insert(expr1.dependencies_.begin(), expr1.dependencies_.end());
160 expr.parameters_.insert(expr1.parameters_.begin(), expr1.parameters_.end());
173 dim_->dimension = dim.impl_;
177 node->children.push_back(dim_);
178 node->children.push_back(expr1.tree_);
181 expr.dependencies_.insert(expr1.dependencies_.begin(), expr1.dependencies_.end());
182 expr.parameters_.insert(expr1.parameters_.begin(), expr1.parameters_.end());
194 dim_->dimension = dim.impl_;
198 node->children.push_back(expr1.tree_);
199 node->children.push_back(dim_);
202 expr.dependencies_.insert(expr1.dependencies_.begin(), expr1.dependencies_.end());
203 expr.parameters_.insert(expr1.parameters_.begin(), expr1.parameters_.end());
219 dim_node->dimension = lhs.impl_;
222 param_node->parameter = rhs;
225 node->children.push_back(dim_node);
226 node->children.push_back(param_node);
228 expr.parameters_.insert(rhs);
243 param_node->parameter = lhs;
246 dim_node->dimension = rhs.impl_;
249 node->children.push_back(param_node);
250 node->children.push_back(dim_node);
252 expr.parameters_.insert(lhs);
264 expr.dependencies_.insert(lhs.dependencies_.begin(), lhs.dependencies_.end());
265 expr.parameters_.insert(lhs.parameters_.begin(), lhs.parameters_.end());
268 param_node->parameter = rhs;
271 node->children.push_back(lhs.tree_);
272 node->children.push_back(param_node);
274 expr.parameters_.insert(rhs);
286 expr.dependencies_.insert(rhs.dependencies_.begin(), rhs.dependencies_.end());
287 expr.parameters_.insert(rhs.parameters_.begin(), rhs.parameters_.end());
290 param_node->parameter = lhs;
293 node->children.push_back(param_node);
294 node->children.push_back(rhs.tree_);
296 expr.parameters_.insert(lhs);
301template <
typename S,
typename V>
302 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
304OPERATOR(V lhs,
const cydui::dimensions::parameter<S>& rhs) {
309 const_value->const_value = lhs;
312 param_node->parameter = rhs;
315 node->children.push_back(const_value);
316 node->children.push_back(param_node);
318 expr.parameters_.insert(rhs);
323template <
typename S,
typename V>
324 requires(not cydui::dimensions::is_dimension_v<V> && not cydui::dimensions::is_expression_v<V>)
326OPERATOR(
const cydui::dimensions::parameter<S>& lhs, V rhs) {
331 param_node->parameter = lhs;
334 const_value->const_value = rhs;
337 node->children.push_back(param_node);
338 node->children.push_back(const_value);
340 expr.parameters_.insert(lhs);
347 const cydui::dimensions::parameter<S>& lhs,
const cydui::dimensions::parameter<S>& rhs
353 param1_node->parameter = lhs;
356 param2_node->parameter = rhs;
359 node->children.push_back(param1_node);
360 node->children.push_back(param2_node);
362 expr.parameters_.insert(lhs);
363 expr.parameters_.insert(rhs);
void add_dependency(std::shared_ptr< dimension_impl< Type > > dependency)
static node_t::sptr make_node(node_t::operation op)