我在其中一个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;
}
答案 0 :(得分:2)
ptr_fun唯一能做的就是让一些typedef可用。那&#39; S 它。 not1需要这些typedef,这就是应用not1的原因 到ptr_fun,但将not1应用于...直接不起作用。 ...缺少not1要求的typedef。
这与Praetorian在上述评论中给出的答案基本相同,但有效STL提供了更一般的解释。