2012-02-08 16 views
5

Napisałem maksymalną() ogólną funkcję w Vala. Jednak nie kompiluje się. Oto ona:Ogólna funkcja w Vala

T maximum<T>(T a, T b) { 
    return a > b ? a : b; 
} 

void main() { 
    stdout.printf("%d\n", maximum(10, 2)); 
} 

mam następujący błąd:

generics.vala:2.12-2.16: error: Relational operation not supported for types `T' and `T' 

Czy wiesz, w jaki sposób mogę rozwiązać tę funkcję, aby móc go skompilować? Dzięki.

Odpowiedz

5

Ogólne porównanie bezpośrednie i różne inne operacje nie są obsługiwane przez bieżącą wersję Vala. Możesz użyć i zaimplementować interfejs Gee.Comparable, aby zamiast tego użyć metody compare_to().