Я занимаюсь разработкой общего дерева AVL и хотел бы использовать операторы T и <по умолчанию>, но у меня также есть возможность замены пользовательских, так что я могу иметь больший контроль над инвариантным и свободным T из-за необходимости помещаться внутри моегоbox.
Я не очень знаком с указателями / объектами функций в C ++, где мне искать? станд :: Bind ()? лямбды?
template <typename T>
class avl_tree
{
private:
std::shared_ptr<avl_node<T>> root_ {nullptr};
// > function object? uses T's > by default
// < function object? uses T's < by default
public:
avl_tree() = default;
// avl_tree(?, ?) constructor accepting overloads
// for the < and > operators
};