On 15.05.2019 16:08, Bogdan wrote:
I don't have any experience with using templates. Is it possible to
create a RB tree containing structs, where the nodes are ordered by one
struct member?
```
import std.stdio;
import std.container;
enum KeyID: uint
{
KEY_A,
KEY_S,
KEY_D,
KEY_W
}
struct KeyController
{
KeyID ID;
bool isDown;
}
void main()
{
auto rbt = redBlackTree!KeyController;
}
```
When I run this I get a compile error:
```
Error: template instance
`std.container.rbtree.RedBlackTree!(KeyController)` does not match
template declaration RedBlackTree(T, alias less = "a < b", bool
allowDuplicates = false) if (is(typeof(binaryFun!less(T.init, T.init))))
```
You can use predicate for this purpose:
```
auto rbt = redBlackTree!((a, b) => a.ID < b.ID, KeyController);
```
https://run.dlang.io/is/CNRTQf