Dans l'esprit ça ressemble au problème des héritages en diamant de C++ par exemple.
Je ne crois pas. Je vois ça plus dans l’esprit :
Je développe une fonction int add(int, int), je compile dans une bibliothèque A qui publie le symbole.
Tu développes une fonction int add(int, int), que tu compile dans une bibliothèque B qui publie le symbole.
Un projet quelconque va vouloir utiliser nos deux bibliothèques, s’il utilise la fonction ci-dessus, le linkeur dynamique va en choisir un. Mais pire, la bibliothèque A peut appeler la fonction de la bibliothèque B...
Pour rust c’est ajouter des interfaces a un type, mais la problématique est bien : quelle méthode sera appelé en cas de double définition...
[^] # Re: Premières impressions
Posté par Anthony Jaguenaud . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 2.
Je ne crois pas. Je vois ça plus dans l’esprit :
int add(int, int), je compile dans une bibliothèque A qui publie le symbole.int add(int, int), que tu compile dans une bibliothèque B qui publie le symbole.Un projet quelconque va vouloir utiliser nos deux bibliothèques, s’il utilise la fonction ci-dessus, le linkeur dynamique va en choisir un. Mais pire, la bibliothèque A peut appeler la fonction de la bibliothèque B...
Pour
rustc’est ajouter des interfaces a un type, mais la problématique est bien : quelle méthode sera appelé en cas de double définition...