【发布时间】:2021-01-03 21:25:42
【问题描述】:
Rust 语言是否支持类似于 c++ 方式的通用代码中的常量值?似乎overview 语言没有宣传它。在 C++ 中使用常量参数化类型允许根据客户的需要创建具有不同大小的预分配缓冲区的对象(类型如 stlsoft::auto_buffer)。
如果不是,那么在 Rust 中实现类似设计的最佳实践是什么?
【问题讨论】:
标签: rust rust-obsolete
Rust 语言是否支持类似于 c++ 方式的通用代码中的常量值?似乎overview 语言没有宣传它。在 C++ 中使用常量参数化类型允许根据客户的需要创建具有不同大小的预分配缓冲区的对象(类型如 stlsoft::auto_buffer)。
如果不是,那么在 Rust 中实现类似设计的最佳实践是什么?
【问题讨论】:
标签: rust rust-obsolete
不,这不受类型安全的支持。为此,我们需要类型级别的数字文字,例如最近添加的 GHC。
但是,您可以使用 Rust 宏。使用宏,您可以创建在任意表达式(包括常量)上参数化的“模板”,这将允许您在这里做您想做的事情。请注意,如果您目前尝试此操作,您可能会发现宏系统中的错误和限制。
【讨论】: