C ++强制模板参数

Art*_*ium 1 c++ templates derived avl-tree

我希望此代码是可能的。

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

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

谢谢。

Mic*_*ker 5

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