Когда я пытаюсь перегрузить opBinary для простой структуры Vector, я получаю странную и бессмысленную ошибку:
struct Vector(T)
{
T x, y;
Vector opBinary(string op)(Vector!float vector)
{
return Vector (
mixin("x" ~ op ~ "vector.x"),
mixin("y" ~ op ~ "vector.y")
);
}
Vector opBinary(string op)(Vector!double vector)
{
return Vector (
mixin("x" ~ op ~ "vector.x"),
mixin("y" ~ op ~ "vector.y")
);
}
}
void main()
{
auto dVec = Vector!double();
auto fVec = Vector!float();
auto aVec = dVec + fVec; // Adding this line causes error (see below)
}
Я получаю следующую ошибку: «opBinary (string op)».Нет номеров строк, ничего.Что, очевидно, не дает мне много чего сделать.Есть ли другой способ справиться с этой ситуацией?Это известная ошибка?
Я использую DMD 2.057 в Windows 7. Еще не тестировал в Linux.
[EDIT] немного очистил код для удобства чтения.