夜锈病的虫子或非特征? (特质专长)

时间:2019-05-10 13:57:45

标签: rust

所以我目前正在使用

  

rustc 1.36.0-每晚(8dd4aae9a 2019-05-04)

并在我的lib.rs中启用

  

#![功能(专业化)]

在我的库包装箱的模块中,有以下内容,这些内容无法编译。据我了解,即使没有f32,它也应该编译,但无论哪种情况,它都不会编译。

f64

众所周知,EqHash都不是NaN也不是reinterpret_cast<u32>,这是因为Nan这个问题,例如在{{ 3}}。使用不安全的HashKey<T> where T : Hash解决方法,因为我并不关心f32

因此,我对任何f64都有一个特征哈希的暗示,而对Hashconflicting implementations of trait `std::hash::Hash` for type `naive::HashKey<f32>`: conflicting implementation for `naive::HashKey<f32>` note: upstream crates may add new impl of trait `std::hash::Hash` for type `f32` in future versionsrustc(E0119) naive.rs(10, 1): first implementation here naive.rs(18, 1): conflicting implementation for `naive::HashKey<f32>` 都有暗示,它们不是{{1}}指出的。因此,这甚至都不是专业化的,因为这三个隐式涵盖了正交情况。

尽管有所有奇妙的逻辑,但我得到了错误:

{{1}}

哪个会引起问题:

我做错什么了吗?怎么做对?既然这些impls引用的是没有重叠的类型集,那么为什么这首先是一个问题?

0 个答案:

没有答案