Objets Trait en Rust avec des Limites Multiples : Une Limitation Surprenante
Cet article explore les raisons des limitations des limites multiples de trait dans les objets trait de Rust. L’auteur découvre une erreur de compilation en essayant d’utiliser plusieurs contraintes de trait (par exemple, `Mammal + Clone`) simultanément dans un objet trait. L’article explore les mécanismes sous-jacents de l’envoi dynamique en Rust et en C++, en comparant leurs implémentations de vtable. Il examine l’utilisation de l’héritage de trait pour contourner cette limitation et ses restrictions inhérentes. Enfin, l’auteur suggère que permettre des limites multiples de trait nécessite plusieurs pointeurs de vtable, bien que cela introduise une certaine redondance, cela résout efficacement les problèmes de conversion de type.
Lire plus