实例化redBlackTree模板时出错
我在用chars实例化RedBlackTree容器时遇到问题,但它可以与int一起工作:实例化redBlackTree模板时出错,d,template-meta-programming,dmd,D,Template Meta Programming,Dmd,我在用chars实例化RedBlackTree容器时遇到问题,但它可以与int一起工作: import std.stdio; import std.container; void main() { auto r1 = redBlackTree!(int)(); // works auto r2 = redBlackTree!(char)(); // error instantiating } 我使用的是DMD32 D编译器v2.060 有什么想法吗?谢谢
import std.stdio;
import std.container;
void main()
{
auto r1 = redBlackTree!(int)(); // works
auto r2 = redBlackTree!(char)(); // error instantiating
}
我使用的是DMD32 D编译器v2.060
有什么想法吗?谢谢。您需要使用可比较的类型(即可以使用<运算符或提供您自己的比较器作为第二个模板参数)
char
(和wchar)仅在数组中使用,因为一个char
不一定与unicode(UTF8版)中的实际字母相关。这还有其他问题,将在D中绊倒新的编码器
另一方面,dchar
始终与一个字母对应,因此与另一个字母相当
经验法则在D中总是使用<代码> DCHAR 除非它是针对字符串类型(甚至考虑使用dstring)
类型需要比较,或者你需要提供一个比较器(显然它不考虑<代码> char < /代码>可以尝试<代码> dchar < /Cord>)“ReCheTeFrac工作了,谢谢。你知道为什么吗?把你的答案记下来,我会把它标记正确。注意:如果你找一个8位的数字,使用<代码>字节<代码>或<代码> UByth<代码>,如果你需要一个关联容器,从代码到