7#include "formula_node.hpp"
18 for (
auto &value: values) {
19 value->post_process(context);
25 for (ttlet &value: values) {
32 if (!rhs.is_vector()) {
33 tt_error_info().set<
"parse_location">(location);
34 throw operation_error(
"Unpacking values can only be done on vectors, got {}.", rhs);
36 if (values.size() < 1) {
37 tt_error_info().set<
"parse_location">(location);
38 throw operation_error(
"Unpacking can only be done on 1 or more return values.");
40 if (values.size() != rhs.size()) {
41 tt_error_info().set<
"parse_location">(location);
42 throw operation_error(
"Unpacking values can only be done on with a vector of size {} got {}.", values.size(), rhs.size());
50 ttlet &lhs_ = values[i];
51 ttlet &rhs_ = rhs_copy[i];
53 if (++i < rhs.size()) {
54 lhs_->assign(context, rhs_);
56 return lhs_->assign(context, rhs_);
64 for (ttlet &value: values) {
Exception thrown during execution of a dynamic operation.
Definition exception.hpp:37
Definition formula_evaluation_context.hpp:16
Definition formula_node.hpp:20
Definition formula_post_process_context.hpp:18
Definition formula_vector_literal_node.hpp:11
void post_process(formula_post_process_context &context) override
Resolve function and method pointers.
Definition formula_vector_literal_node.hpp:17
datum evaluate(formula_evaluation_context &context) const override
Evaluate an rvalue.
Definition formula_vector_literal_node.hpp:23
datum & assign(formula_evaluation_context &context, datum const &rhs) const override
Assign to a non-existing or existing lvalue.
Definition formula_vector_literal_node.hpp:31
Definition parse_location.hpp:16