最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

casting - How to safely cast integer in zig - Stack Overflow

programmeradmin10浏览0评论

The @intCast() causes undefined behavior when the target type cannot hold the resulting value. Is there something like @safeIntCast() or a similar function which would return CastError!anytype?

The @intCast() causes undefined behavior when the target type cannot hold the resulting value. Is there something like @safeIntCast() or a similar function which would return CastError!anytype?

Share Improve this question asked Nov 17, 2024 at 13:46 VerfinVerfin 256 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

std.math has a number of functions for safe casting:

  • pub fn cast(comptime T: type, x: anytype) ?T

Cast an integer to a different integer type. If the value doesn't fit, return null.

  • pub fn lossyCast(comptime T: type, value: anytype) T

Cast a value to a different type. If the value doesn't fit in, or can't be perfectly represented by, the new type, it will be converted to the closest possible representation.

  • pub fn negateCast(x: anytype) !std.meta.Int(.signed, @bitSizeOf(@TypeOf(x)))

Returns the negation of the integer parameter. Result is a signed integer.

发布评论

评论列表(0)

  1. 暂无评论