タグ

ブックマーク / qnighy.hatenablog.com (1)

  • RustのSizedとfatポインタ - 簡潔なQ

    概要: RustにはSizedというトレイトがあり、一部の例外を除いて暗黙のうちに実装されている。Sizedが実装されていない型はDynamically Sized Typeと呼ばれ、これらのデータはfatポインタを経由してアクセスする。この仕組みを説明する。 Sizedの使い方はAPIリファレンス、The Bookの該当部分とその日語訳、Rustonomiconの該当部分をまず読むとよい。 この記事では、コンパイラがSizedをどう実装しているかという観点からまとめ直してみた。 Sizedとは何か Sizedは標準ライブラリで定義されているトレイトである。 pub trait Sized {} Sizedトレイトは次の2つの意味をもつようだ。 Sizedを実装する型は、全て同じバイト数である。C言語のsizeofに相当するstd::mem::size_of が使える。(Sizedでない

    RustのSizedとfatポインタ - 簡潔なQ
  • 1