From 72f0f9b9629013e83fc4346a35113e9eecae45b5 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Tue, 8 Sep 2026 10:46:13 +0200 Subject: Allow compile-time casts --- include/elna/boot/evaluator.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/elna/boot/evaluator.h b/include/elna/boot/evaluator.h index 35cca1a..dc6fd71 100644 --- a/include/elna/boot/evaluator.h +++ b/include/elna/boot/evaluator.h @@ -86,8 +86,15 @@ namespace elna::boot std::optional evaluate_traits_size(const type& subject); std::optional evaluate_traits_alignment(const type& subject); - static std::optional cast_to_int(const constant_value& source_expression); - static std::optional cast_to_word(const constant_value& source_expression); + static std::optional cast_to_integer(const constant_value& source_expression, + bool target_signed, std::size_t target_size); + static std::optional cast_to_float(const constant_value& source_expression, + float_literal::format_kind target_format); + static std::optional cast_to_bool(const constant_value& source_expression); + static std::optional cast_to_char(const constant_value& source_expression); + static std::optional cast_to_enumeration(const constant_value& source_expression, + std::size_t member_count, std::size_t target_size); + static std::optional cast_to_pointer(const constant_value& source_expression); public: std::optional evaluate_index(expression& subject); -- cgit v1.2.3