我不明白ptr_fun

时间:2015-12-01 01:09:13

标签: c++ string stl

我在其中一个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;
}

1 个答案:

答案 0 :(得分:2)

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

  

ptr_fun唯一能做的就是让一些typedef可用。那&#39; S   它。 not1需要这些typedef,这就是应用not1的原因   到ptr_fun,但将not1应用于...直接不起作用。   ...缺少not1要求的typedef。

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