Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用可调用对象作为参数定义函数_C++_Stl - Fatal编程技术网

C++ 使用可调用对象作为参数定义函数

C++ 使用可调用对象作为参数定义函数,c++,stl,C++,Stl,谢谢你检查我的问题。我需要一个模板函数来使用一个可调用的对象,如lambda、函数对象、bind、函数指针和函数作为参数,就像STL一样,但我真的不知道如何做,而且没有在线资源 具体来说,我希望设计一个函数来遍历我的容器,对于每个元素,它将调用可调用函数来操作元素,就像STL::for_each一样。你能举个这样的例子吗 多谢各位 STL使用模板来实现这一点。大概是这样的: template<class CallableObjectType> void do_stuff(/* oth

谢谢你检查我的问题。我需要一个模板函数来使用一个可调用的对象,如lambda、函数对象、bind、函数指针和函数作为参数,就像STL一样,但我真的不知道如何做,而且没有在线资源

具体来说,我希望设计一个函数来遍历我的容器,对于每个元素,它将调用可调用函数来操作元素,就像STL::for_each一样。你能举个这样的例子吗


多谢各位

STL使用模板来实现这一点。大概是这样的:

template<class CallableObjectType>
void do_stuff(/* other arguments */, CallableObjectType object)
{
    // ...
    object(arg1, arg2, arg3);
    // ...
}

也就是说,它不会试图强制对象可调用,除非调用它。如果对象不可调用,则无法实例化模板,因为对象arg1、arg2、arg3无效,因此会出现错误。如果对象是可调用的,那么它将按照您期望的方式工作。

增加您获得帮助的机会。您应该尝试编写一个小示例,说明您正在尝试做什么。