Rustの関連型のデフォルトについて
2023/07/07 01:31 | 公開 |
2023/07/06現在、stable環境ではRustの関連型(associated type)のデフォルトは定義できません。
The Rust RFC Bookの2532-associated-type-defaultsに詳細が書かれています。
issueを見ると半数ほどのタスクが終わっているのと、nightly環境では#![feature(associated_type_defaults)]
をつけることで動作させられることが確認できます。
試しにnightly環境で以下のようなコードを書いてみたところコンパイルが通りました
#![feature(associated_type_defaults)]
trait Foo {
type AT = i32;
}
struct A;
impl Foo for A {}
fn main() {}
stable環境ではFoo
の中のtype AT = i32
の部分でコンパイルエラーが発生します。
色々と 悪用 活用できそうな機能ですがいい感じのコードを書けなかったので何かあれば更新します。