这是我的代码:
template<typename _Tp, typename _Compare>
inline const _Tp&
inline min(const _Tp& __a, const _Tp& __b, _Compare& __comp)
{
if (__comp(__b, __a))
return __b ;
return __a;
}
这是我收到的错误消息:
/ usr / include / c ++ / 4.4 / bits / stl_algobase.h:232:57:错误:宏“min”传递3个参数,但只需2个
我知道我传递了3个参数a,b和comp但是我只返回a和b,但是当我尝试返回comp时它会给我相同的信息。
答案 0 :(得分:3)
你某处有#define min(a, b)
,所以预处理器尝试扩展它并失败
试试(min)(a, b, compare)
。 <{1}}周围的括号可以防止宏扩展。