函数指针的主要原因是提供通用的可调用对象,但在C++ 11中提供它的方法是使用std::function,所以除了与C的兼容性之外,还有什么理由在现代C++中使用函数指针吗?换句话说,是std::function一个现代版本的函数指针,与std::arrayvs内置数组完全一样吗?
是的,我更喜欢std::function几乎所有地方,但在少数情况下,大小开销和间接性std::function可能不可接受。对于像包装在 中的函数指针这样的小型可调用对象std::function,通常没有额外的间接寻址,也没有动态内存分配,因为可调用对象适合 ,std::function但std::function可能很大,无法容纳更大的可调用对象,因此可能会产生很大的空间开销。
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |