“cfg”是始终为真还是假?

3

为了测试目的,我需要一个总是为true/false的cfg。 对于true情况下,我使用

#[ cfg( target_pointer_width = "64") ]
...

但是很明显,这样还不够通用。 如何最优地表达 cfg 以获取所需的值?


为什么你不能省略 cfg 指令呢? - isaactfa
2
any(foo, not(foo)) 总是为真。 #[cfg(any(foo, not(foo)))] 将始终被评估。 - user2722968
@isaactfa 用于测试目的。例如,在宏的测试中。 - Kos
1个回答

9

对于一个始终为真的 cfg 选项,只需执行以下操作:

#[cfg(all())]
fn main() {
    println!("It works!");
}

如果你需要一项始终为false的cfg选项,你可以使用:

#[cfg(any())]
fn main() {
    println!("It disappears!");
}

1
我曾经使用 #[cfg(xxx)] 来注释掉一些代码块,但这种方式更加优美,并且只需覆盖两个字符即可从“开启”变为“关闭”。 - rodrigo
太棒了!这正是我一直在寻找的。 - Kos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接