5

charsを使用してRedBlackTreeコンテナをインスタンス化するのに問題がありますが、intsで機能します。

import std.stdio;
import std.container;

void main()
{
        auto r1 = redBlackTree!(int)();   // works
        auto r2 = redBlackTree!(char)();  // error instantiating
}

DMD32Dコンパイラv2.060を使用しています。

何かご意見は?ありがとう。

4

1 に答える 1

6

比較可能なタイプを使用する必要があります(つまり、<演算子を使用するか、2番目のテンプレートパラメーターとして独自のコンパレーターを提供できます)

char(およびwchar)はchar、Unicode(UTF8エディション)の実際の文字に必ずしも関連しないため、配列での使用にのみ役立ちます。これには、Dの新しいコーダーをトリップさせる他の落とし穴があります。

dchar一方、常に文字に対応するため、別の文字に相当します。

Dの経験則はdchar、文字列タイプの場合を除いて常に使用します(さらに、dstringの使用を検討します)

于 2012-11-08T19:22:20.670 に答える