gpt4 book ai didi

rust - 有没有一种方法可以基于常量的存在进行条件编译?

转载 作者:行者123 更新时间:2023-12-03 11:29:04 25 4
gpt4 key购买 nike

libc库定义了许多常量,这些常量可以作为标志传递给open(),例如O_APPENDO_CREAT等。其中某些标志仅针对某些OS目标定义。如果有一种方法可以在我的代码中自由使用O_WHATEVER而不用担心它实际上是否在libc中定义,那就太好了:

#[cfg(???)]
const O_WHATEVER = libc::O_WHATEVER;
#[cfg(not(???))]
const O_WHATEVER = 0;

如果上面的示例中的 ???是某种 is_defined(libc::O_WHATEVER),那就太好了。否则,我需要弄清楚所有在libc中定义了 O_WHATEVER的操作系统组合,这确实是很痛苦的。

最佳答案

不支持Rust 1.41。 RFC 2523 — cfg_version and cfg_accessible 引入了:

#[cfg(accessible(libc::O_WHATEVER))]
const O_WHATEVER = libc::O_WHATEVER;

关于rust - 有没有一种方法可以基于常量的存在进行条件编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60636940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com