A.B*_*.B. 1 conditional-compilation rust
我想知道这样的事情是否可行
fn main() {
#[cfg(foo)] {
println!("using foo config");
}
}
Run Code Online (Sandbox Code Playgroud)
上下文是一些仅使用单元测试无法充分测试的代码.我经常要运行一个显示信息的"demo"cfg.我正在寻找手动注释/删除某些代码部分的替代方法.
至少从Rust 1.21.1开始,就像你说的那样:
fn main() {
#[cfg(foo)]
{
println!("using foo config");
}
}
Run Code Online (Sandbox Code Playgroud)
在此之前,不可能完全有条件地执行此操作(即避免完全检查块的类型),这是RFC#16所涵盖的.但是,您可以使用cfg评估为true或者false基于--cfg标志的宏:
fn main() {
if cfg!(foo) { // either `if true { ... }` or `if false { ... }`
println!("using foo config");
}
}
Run Code Online (Sandbox Code Playgroud)
if始终具有名称解析和类型检查运行的主体,因此可能并不总是有效.
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |