Мне нужно проверить, равны ли два типа в const fn
. Сравнение TypeId
не работает:
#![feature(const_if_match)]
#![feature(const_fn)]
#![feature(const_type_id)]
const fn t<T1: 'static, T2: 'static>() -> bool{
std::any::TypeId::of::<T1>() == std::any::TypeId::of::<T2>()
}
Ошибка:
error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
--> src/lib.rs:5:8
|
5 | std::any::TypeId::of::<T1>()==std::any::TypeId::of::<T2>()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Специализация шаблонов, как в C ++, не работает в Rust, поскольку в Rust нет специализации шаблонов ». Итак, есть ли способ проверить на равенство типов в Rust?