我希望此代码是可能的。

template<typename K, typename T, typename Comparer>
class AVLTree
{
   ...
   void foo() {
       ...
       int res = Comparer::compare(key1, key2);
       ...
   }
   ...
};

具体来说,我想强制Comparer类具有static int compare(K key1, K key2)函数。我当时正在考虑使用推导,但是找不到任何适用于模板的想法。

谢谢。

最佳答案

你不能但是,如果使用函数而比较器没有该函数,则编译将失败,这或多或少是您想要发生的事情。是的,就像其他人指出的那样,您希望将static称为static。

10-08 11:14