Предположим, что у меня есть функция, которая сравнивает числовой аргумент с константой и возвращает логическое значение:
fn compare(n: f64) -> bool {
n > 42 as f64
}
Это отлично работает, но я не могу сделать его общим:
fn compare<T: Ord>(n: T) -> bool {
n > 42 as T // error: non-scalar cast: `<VI0>` as `T`
}
fn compare<T: Ord>(n: T) -> bool {
n > 42 // mismatched types: expected `T` but found `<VI0>` (expected type parameter but found integral variable)
}
fn compare<T: Num>(n: T) -> bool {
n > 42 // error: binary operation > cannot be applied to type `T`
}
Как бы вы это сделали?