小编Man*_*kka的帖子

函数对象的正确参数类型是什么?

我有一个接收函数对象的模板化函数.有时函数对象是无状态结构,但有时它们是大型有状态对象.函数对象的状态在此函数中未更改,仅进行了检查.我也非常热衷于编写编译器可以尽可能优化的代码.选择参数类型时我应该考虑什么?

该功能属于以下类型:

template<typename funcT>
auto make_particle(funcT fun) {
   Particle<typename funcT::result_type> particle;
   particle = fun();
   return particle;
}
Run Code Online (Sandbox Code Playgroud)

参数类型可能应该是funcT const & fun大型对象不被复制,但为什么大多数人使用按值调用的函数对象?我是否通过使用const引用来松散?或者我应该使用左值参考?请注意,c ++ 1y没问题,上面的代码示例只是一个例子.

c++ function-object

8
推荐指数
2
解决办法
169
查看次数

标签 统计

c++ ×1

function-object ×1