簡體   English   中英

"'nightly' vs 'stable' Rust 或編譯器版本的條件編譯"

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM