Type-level bounded recursion in Rust
a year ago
- #Recursion
- #Rust
- #Stack Overflow
- 在Rust中,由于保护页机制,栈溢出会导致程序不可恢复地终止。
- Rust为栈溢出安装了信号处理程序,通过触发abort来维护安全性保证。
- 带有运行时的语言可以手动检查栈使用情况,但Rust缺乏这种能力。
- 深度计数器是防止递归调用中栈溢出的一种简单解决方案。
- 使用Peano编码和特质进行类型级递归被探索为更高级的解决方案。
- 宏用于简化受保护递归的实现,尽管存在一些权衡。
- 该方法由于生成多个函数实例,会增加代码生成时间和二进制文件大小。