J'ai acheté "Le langage de programmation D" il y a quelque temps. C'est un bon livre, très éducatif. Cependant, j'ai du mal à essayer de compiler une fonction du langage listée dans le livre : Les fonctions d'extension.
Dans le livre, Andrei écrit que toute fonction(a, b) peut être invoquée comme : a.function(b) ; Je devrais donc pouvoir le faire :
struct Person {
string name;
}
void foo(Person person, string name) {
person.name = name;
}
void main() {
auto bob = Person();
bob.foo("Bob Dole"); // ERROR: Person does not have method 'foo'
}
C'est vrai ? Est-ce que cette fonctionnalité n'est pas encore implémentée, ou est-ce que je rate quelque chose ? J'ai remarqué que l'importation de std.range ajoute des méthodes aux tableaux, il semble donc qu'elle soit implémentée à un certain niveau.