8

Rust 语言是否支持类似于 c++ 方式的通用代码中的常量值?似乎语言概述没有宣传它。在 C++ 中使用常量参数化类型允许创建具有不同大小的预分配缓冲区的对象,具体取决于客户端的需要(类型如 stlsoft:: auto_buffer)。
如果不是,那么在 Rust 中实现类似设计的最佳实践是什么?

4

1 回答 1

8

不,这不受类型安全的支持。为此,我们需要类型级别的数字文字,例如最近添加的 GHC。

但是,您可以使用 Rust 宏。使用宏,您可以创建在任意表达式(包括常量)上参数化的“模板”,这将允许您在这里做您想做的事情。请注意,如果您现在尝试此操作,您可能会在宏系统中发现错误和限制。

于 2013-02-12T01:20:26.477 回答