[英]Rust conditional compilation(cfg) with single identifier
我試圖從條件編譯手冊@ doc.rust-lang.org中理解以下示例:
// This function is only included when either foo or bar is defined
#[cfg(any(foo, bar))]
fn needs_foo_or_bar() {
// ...
}
那些foo
和bar
標識符代表什么?
這是target_os
標識符的快捷方式還是它的用途?
從條件編譯手冊上的語法定義來看, any(foo, bar)
是一個ConfigurationPredicate
(特別是ConfigurationAny
變體),所以foo, bar
是一個ConfigurationPredicateList
,因此foo
和bar
都是一個ConfigurationPredicate
。 因此,您可以使用它們有條件地為目標操作系統編譯。 或者你可以做一些這樣的自定義功能:
#[cfg(any(feature = "myfeature1", feature = "myfeature2"))]
pub struct Source {
pub email: String,
pub name: String,
}
有關自定義功能的更多信息,請參閱此問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.