IT用語集 › プログラミング › マーカートレイト

マーカートレイト

プログラミング Svenska → 更新: 2026-10-23

メソッドを持たず、型レベルの目印としてだけ使われるRustのトレイト。Send(スレッド間で移動できる)、Sync(スレッド間で共有できる)、Sized(コンパイル時にサイズが決まる)、Copy など。

コンパイラは型システムを通じてこれらを強制する。たとえば Send でない型は別スレッドへ送れない。ほとんどの型は、フィールドがすべて Send/Sync であれば自動的に Send/Sync になる。Rc<T> は参照カウントがスレッドセーフでないため Send ではなく、Arc<T> は Send + Sync だ。Rust の「恐れのない並行性」を支える土台である。

通常のトレイトとの違いは、振る舞いを持たず分類だけを表すこと。ライブラリ作者はAPIの制約(「この型は○○に対して安全でなければならない」)を表すために独自のマーカートレイトを定義する。コンパイラが自動で推論できない場合は unsafe impl Send for MyType {} のように手で実装する。

← 用語集に戻る