static
静的変数はプログラムの実行全体を通じて存続するため、移動しません。
Rust RFC Book で説明されているように、静的変数は使用時にインライン化されず、実際の関連するメモリ位置に存在します。これは安全でないコードや埋め込みコードに有用であり、変数はプログラムの実行全体を通じて存続します。グローバル スコープの値にオブジェクト ID が必要ない場合は、一般的に const
が使用されます。
Speaker Notes
This slide should take about 5 minutes.
static
is similar to mutable global variables in C++.static
はオブジェクト ID(メモリ内のアドレス)と、内部可変性を持つ型に必要な状態(Mutex<T>
など)を提供します。
その他
static
変数はどのスレッドからでもアクセスできるため、Sync
である必要があります。内部の可変性は、Mutex
やアトミックなどの方法で実現できます。
マクロ std::thread_local
を使用して、スレッド ローカルのデータを作成できます。