例: Vec の実装

全てをまとめるために、最初から std::Vec を書くことにします。 アンセーフなコードを書くための最良のツールは全部アンステーブルなため、 このプロジェクトは nightly でしか動作しません (Rust 1.9.0 現在) 。 アロケータの API を除いて、使用するアンステーブルなもののほとんどは、 今日の形態に似た状態で、安定版となると予測しています。

しかし、なるべくアンステーブルなコードを書くことを避けようと思います。 特に、いかなる intrinsic も使わないことにします。これらはコードを ちょっと改善したり、効率を良くします。これらを使わない理由は、 intrinsic が永遠にアンステーブルだからです。もっとも、多くの intrinsic は実際に 別の場において安定版になっていますが (std::ptrstd::mem は、 多くの intrinsic を含んでいます) 。

究極には、これは、ここで実装する Vec では可能な最適化を全部は 利用しないということを意味します。だからといって、全く単純という訳ではありません。 その問題によって何か本当に利益を得ることがないとしても、基本的で 細かいところに突っ込んでいきます。

先に進みたいですよね? それでは行きましょう。

関連キーワード:  Vec, 実装, ライフタイム, intrinsic, アンステーブル, メモリ, コード, サイズ, チェック, Mutex