簡體   English   中英

相當於 -DPREPROC_VAR 用於鐵銹/貨物

[英]Equivalent of -DPREPROC_VAR for rust/cargo

我有一個const變量,我需要在運行時對其進行硬編碼,但可在編譯時對其進行配置。 在 C/C++ 風格的預處理器中,通常可以告訴編譯-DPREPROC_VAR並使用#ifndef來保護定義

#ifndef MAX_TRHEADS
#define MAX_THREADS 1000
#endif

在 rust 我有

// Doesn't actually work because I need a usize and `env!` returns `&str`
const MAX_THREADS: usize = std::env!("MYLIB_MAX_THREADS");

但我不知道如何為它設置默認值。 我嘗試在MYLIB_MAX_THREADS[env]部分設置 MYLIB_MAX_THREADS 但它沒有用。

env! 要求變量在這里,所以有一個默認值是沒有意義的。 但是option_env! 這可能是有道理的:

const MAX_THREADS: &'static str = {
    if let Some(x) = std::option_env!("MYLIB_MAX_THREADS") {
        x
    } else {
        "42"
    }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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