文章预览
引言 很多时候,选择单一,事情做来不会有多少阻力,选择太多 ,倒是举棋难定了。 C++ 复杂性的一方面就体现在选择太多,对于同一种需求,可能存在数十种不同的方式都能够解决,此时每种方式的优劣便是学习的难点。 std::function , 函数指针, std::bind , Lambda 就是这样的一些组件,使用频率不低,差异细微,许多人不清楚何时使用何种方式,常常误用,致使程序性能出现瓶颈。 本文全面地对比了这些组件间的细微差异,并评估不同方式的性能优劣,提出使用建议及一些实践经验。 首先要明确谁与谁对比,理清可替代对象,这样对比起来才有意义。 std::function 的对比对象是函数指针,它们主要是为了支持函数的延迟调用; std::bind 的对比 对象是 Lambda 和 std::bind_front ,主要是为了支持参数化绑定。 本文会全面对比这些方式的运行时间、编
………………………………