我不明白ptr_fun

I don't understand ptr_fun

本文关键字:fun ptr 明白      更新时间:2023-10-16

我在一个c++代码中遇到了ptr_fun这个东西,我试着从cplusplus.com上读到它,但我真的不知道这个函数指针应该做什么。

感兴趣的代码非常简单,将字符串开头的空部分修剪掉。

static inline string & trim_beg(string & s) {
  s.erase(s.begin(), find_if(s.begin(), s.end(), not1(ptr_fun < int, int > (isspace))));
  return s;
}

来自Scott Meyers的有效STL(项目40):

ptr_fun唯一要做的就是提供一些typedef。那是这些typedef是not1所必需的,这就是应用not1的原因到ptr_fun,但将not1应用于。。。直接不起作用。…缺少not1所要求的typedef。

这与Praetorian在上述评论中给出的答案基本相同,但有效STL提供了更一般的解释。