All*_*Lee 1 conditional-compilation rust
我想别名类型uint到u32默认,但一个标志可以编辑将其改为期间设置usize.代码应该是这样的:
#[cfg(uint='u32') || default]
type uint = u32;
#[cfg(uint='usize')]
type uint = u64;
Run Code Online (Sandbox Code Playgroud)
当我编译时,我可以使用cargo build --uint=usize.我应该怎么做才能使这项工作?
您想要的功能不存在.有几种方法可以伪造它.
首先,您可以使用功能:
#[cfg(all(feature="uint-is-u16", not(any(feature="uint-is-u32", feature="uint-is-u64"))))]
type uint = u16;
#[cfg(not(any(feature="uint-is-u16", feature="uint-is-u64")))]
type uint = u32;
#[cfg(all(feature="uint-is-u64", not(any(feature="uint-is-u16"))))]
type uint = u64;
Run Code Online (Sandbox Code Playgroud)
这些是使用指定的cargo build --features=uint-is-u64.请注意,功能是严格附加的,您不能制作"独有"功能:即您不能指定两者u64和u32.因此,您需要构建代码,使其即使启用了多个功能也能正常工作.
或者,您可以将设置放在某个配置文件中,然后编写一个构建脚本,将类型别名作为代码发出(请参阅代码生成示例).
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |