Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generic function in Vala

I wrote a maximum() generic function in Vala. However, it does not compile. Here it is:

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

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

I got the following error:

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

Do you know how I can fix this function to be able to compile it? Thanks.

like image 965
antoyo Avatar asked Feb 08 '12 00:02

antoyo


1 Answers

Generic direct comparison and various other operations aren't supported by current Vala. You may want to use and implement Gee.Comparable interface to use a compare_to() method instead.

like image 166
elmarco Avatar answered Sep 18 '22 20:09

elmarco