Базовая перегрузка операторов в D (часть 2) - PullRequest
0 голосов
/ 19 марта 2012

Использование танго с D1:

class C 
{
    private int j;
    public int opBinary(char[] op: "+") (ref C x) { return 1; }
    public int opBinary(char[] op: "+") (C x) { return 3; }
}

int opBinary(char[] op: "+") (ref C x, ref C y) { return 2; }
int opBinary(char[] op: "+") (C x, C y) { return 2; }

void main() {
    C a = new C;
    C b = new C;

    int j = a + b;
}

Ошибка компилятора:

"несовместимые типы"

означает, что перегруженные операторы не были сопоставлены.

Не могу дождаться, чтобы освоить D.

Большое спасибо.

О, да: я использую танго с D1, так что, может быть, поэтому он не работает? Я бы хотел остаться с Танго. Кто-нибудь использовал Tango + D2?

1 Ответ

3 голосов
/ 19 марта 2012

В шаблонной перегрузке оператора D1 с использованием opBinary и т. Д. Не работает.Вам нужно использовать opAdd, opSub и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...