Dropトレイトは、デストラクターを実装する為のトレイト。
Dropトレイトはstd::preludeに含まれているので、useしなくても使える。
Dropトレイトを実装していると、所有権を持った変数がスコープから外れたときに、(Dropトレイトの)dropメソッドが呼ばれる。
複数の変数がスコープから外れた場合、dropメソッドが呼ばれる順序は、変数が定義された順序の逆順らしい。
Dropトレイトのdropメソッドは、直接呼んではいけない。
呼びたい場合(インスタンスを明示的に破棄したい場合)は、std::mem::drop関数を呼び出す。
(このdrop関数は自動的にインポートされているので、useで宣言せずに使える)