On Wednesday, 15 May 2019 at 13:08:18 UTC, 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))))
```
Key controller cannot be compared by less
which is why it fails, give it an opCmp and it'll work.