Я купил "язык программирования D" некоторое время назад. Отличная книга, очень воспитательная. Однако у меня возникли проблемы с попыткой компиляции языковой функции, указанной в книге: Функции расширения.
В книге Андрей пишет, что любая функция (a, b) может быть вызвана, например: a.функция (b); Поэтому я должен быть в состоянии сделать это:
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'
}
Правильно? Эта функция еще не реализована, или я просто что-то пропустил? Я замечаю, что импорт std.range добавляет методы в массивы, поэтому он кажется реализованным на некотором уровне.