[英]Conditional compilation for 'nightly' vs 'stable' Rust or compiler version
我正在使用一些 Rust 不穩定的功能,但我仍然希望能夠使用穩定的 Rust 編譯我的庫的簡化版本。 我很高興只在編譯器支持時包含那些不穩定的特性,並在不支持時排除它們。
我認為使用像#[cfg(rust_version = "nightly")]
這樣的條件編譯很容易實現這個目標,但似乎 'stable' vs 'nightly' 不是cfg options 。
你們如何基於“穩定”與“夜間”或基於編譯器版本執行條件編譯?
我建議創建一個功能,為您的夜間專用代碼,默認是關閉的,即不包括在
Cargo.toml
[features]
default= []
由於該功能不是默認功能,因此使用穩定工具鏈進行編譯即可開箱即用。 如果您將其稱為nightly-features
,則可以使用#[cfg(feature = "nightly-features")]
。 這種方法的額外好處是允許您(和您的用戶)獨立於編譯器測試夜間功能(即回答問題:編譯器是否破壞了我的代碼,或者我的nightly-features
代碼是否包含錯誤?)。
我一直認為可讀性在代碼中是一件好事,即使是生銹。 這是……相反的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.