7 Stimmen

Generische Funktion in Vala

Ich habe eine maximum() generische Funktion in Vala geschrieben. Allerdings kompiliert es nicht. Hier ist es:

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

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

Ich bekam den folgenden Fehler:

generics.vala:2.12-2.16: Fehler: Relationale Operation nicht für Typen `T' und `T' unterstützt

Weißt du, wie ich diese Funktion reparieren kann, um sie kompilieren zu können? Danke.

5voto

elmarco Punkte 29466

Generische direkte Vergleiche und verschiedene andere Operationen werden von der aktuellen Vala nicht unterstützt. Möglicherweise möchten Sie stattdessen die Gee.Comparable-Schnittstelle verwenden und implementieren, um die Methode compare_to() zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X