感谢两位的回答。
我觉得在我修改过的bool operator() ( const elemType &val )版本中的那个对象comp,是local object,那么函数operator()一执行完它就不存在了。我没有返回该对象的引用或地址,那么应该没有生存期的错误。
关于版主的修改,我觉得是个很简洁而且不错的方法。我想知道的是其中的“return Comp()(val, _val);“是不是相当于生成了一个匿名的Comp类型的
object,然后又调用了Comp的member function

perator()。
以上是我的一些想法,希望可以得到大家的指点。