cfg
環境に応じたコンパイルをするには2種類の方法があります。
cfg
アトリビュート:#[cfg(...)]
をアトリビュートとして使用する。cfg!
マクロ:cfg!(...)
をブーリアンとして評価する。
前者は条件付きコンパイルを行いますが、後者はtrue
またはfalse
リテラルに評価され実行時にチェックすることが可能です。
いずれの場合も適切なシンタックスで記述する必要があります。
#[cfg]
と異なり、cfg!
はコードを削除せず、trueまたはfalseに評価されるだけです。
例えば、cfg!
が何を評価しているかに関係なく、cfg!
が条件に利用されるとき、if/else式の中のすべてのブロックが有効でなくてはなりません。
参照
参照(reference
), cfg!
, マクロ.