个人笔记向+google机翻(机翻确实很多细节描述不清,看不懂记得参考原文)
原文参见:https://hackingcpp.com/cpp/be...

Function Objects

  • 至少提供一个operator() 重载
  • 像一个函数一样
  • 可以是有状态的(对象的data数据有记忆,类似函数里有一个static data)

    Example: Interval Query

    image.png

    Guidelines

  • Avoid Stateful operator()
    有状态=的当前operator()的结构取决于的先前调用operator()
    许多(标准)算法不能保证传入函数对象的调用顺序,尤其是多线程和c++17引入并行策略
    首选operator()const 或者自行确保并发安全

    Standard Library Function Objects

image.png

Lambdas (Basics)


ysysys
10 声望1 粉丝