14struct YFastLeaf:
public AVLNodeBase<Key, YFastLeaf<Key, Value>> {
15 typedef Value DerefType;
19 explicit YFastLeaf(
const Key& key): AVLNodeBase<Key, YFastLeaf>(key), value() {}
20 explicit YFastLeaf(
const Key& key,
const Value& value): AVLNodeBase<Key, YFastLeaf>(key), value(value) {}
21 explicit YFastLeaf(
const Key& key, Value&& value): AVLNodeBase<Key, YFastLeaf>(key), value(std::move(value)) {}
23 DerefType& deref() {
return value; }
27struct YFastLeaf<Key, void>:
public AVLNodeBase<Key, YFastLeaf<Key, void>> {
28 typedef const Key DerefType;
30 using AVLNodeBase<Key, YFastLeaf>::key;
32 explicit YFastLeaf(
const Key& key): AVLNodeBase<Key, YFastLeaf>(key) {}
34 DerefType& deref() {
return key; }