草庐IT

T_OLD_FUNCTION

全部标签

c++0x std::function 作为方法参数

我正在尝试传递std::function通过这样的方法:classdispatch{public:deliver(std::functiontask);};这按预期工作。但是我希望将参数传递给作为任务提供的一些方法,但不想为所有不同的function创建重载。表格。例如是否有可能只创建如下的方法deliver(std::function&task);然后调用dispatch->deliver(bind(&Object::method,X));或dispatch->deliver(bind(&Object::method,X,arg1,arg2));等...感谢大家的意见。看来我真正的错

c++ - 在 C++11 中使用 std::function 作为委托(delegate)

假设我有这3个不同的函数,我可能想指出:floattest1(inta,intb){return7.0f;}structTestClass{floattest2(inta,intb){return5.0f;}};structTestClass2{floattest3(inta,intb){return3.0f;}};注意这三个函数如何使用相同的参数和返回值。我想抽象掉它是否是一个成员函数以及它属于哪个类。我想要一个委托(delegate)类型,它可以引用这3个函数中的任何一个,具体取决于它的初始化方式。这是我的第一次尝试:typedefstd::functionMyDelegate;/

c++ - 设置一个 std::function 变量来引用 std::sin 函数

我有一个关于如何正确使用新的C++11std::function变量的问题。我在网上搜索过几个例子,但它们似乎没有涵盖我正在考虑的用例。以这个最小的例子为例,其中函数fdiff是numerical.hxx中定义的有限前向差分算法的实现(这不是问题,我只是想给出我想要采用任意函数并将其传递的上下文原因)。#include#include#include#include"numerical.hxx"intmain(){doublestart=0.785398163;doublestep=0.1;intorder=2;std::functionf_sin=std::sin;std::cout

c++ - 成员初始化列表 : initialize two members from a function returning a tuple

memberinitializerlist中的多个成员是否可以从函数获得的元组中初始化?随着通过元组返回多个值变得越来越流行,我希望有一个解决方案。除了语言限制,我看不出有什么其他原因无法做到这一点。这是我所拥有的mcve:autonew_foo(std::size_tsize)->std::tuple,int*>{autobuffer=std::make_unique(size*sizeof(int)+8);autobegin=static_cast(static_cast(buffer.get()+4));returnstd::make_tuple(std::move(buffer

C++ 语法/语义问题 : Reference to Function and typedef keyword

什么会typedefint(&rifii)(int,int)用于?这个“声明”之前的typedef是什么?我想把这看作typedef(int(&rifii)(int,int))[newname]但是[新名称]不像你那样存在typedefintINTEGER;以下语法的类似问题:typedefvoid(*PF)();PFedit_ops[]={&cut,&paste,©,&search};PFfile_ops[]={&open,&append,&close,&write};PF*button2=edit_ops;PF*button3=file_ops;button2[2]();t

c++ - std::function 创建临时文件时内存访问错误

我目前正在实现一些抽象来表示3D对象的水平集操作。基本上是在this中描述的内容GLSL着色器的精彩页面。为了简要概述,3D对象可以用一个函数来描述,该函数将R^3域映射到称为水平集(或符号距离函数)的标量。例如,对于球体,水平集函数由phi(X)=X.Norm2()-R*R定义,其中Norm2表示平方欧氏范数R^3中的一个vector。所以我想出了一个代表这样一个概念的LevelSetObject类:classLevelSetObject{usingSDFFunction=std::function;protected:SDFFunctionm_SDF;public:doubleSD

c++ - 包括 boost function.hpp,但不使用它,会使我的二进制文件的大小增加 200k。为什么?

我正在研究嵌入式处理器,因此二进制大小非常重要。我试图避免使用标准库。但是,我想使用std::function。我从boost中提取了“function.hpp”,我正在尝试使用它,但是简单地包含function.hpp会增加我的二进制200k的大小,这使得它比我的处理器可以接受的更大。如果我包含标准库,它只会增加我的二进制文件60k。我想不通,如果我还没有使用任何模板,就不会有任何开销。即使我这样做了,我也无法想象它是值(value)200k的代码。我使用的是gcc4.7,我已经禁用了我可以告诉“-g0”的调试信息并打开了优化“-O2”。任何帮助将不胜感激。

c++ - 检查两个 std::function 是否相等

如果我有两个std::functions,如何检查两者是否具有相同的功能?附加信息:我有一个函数vectorstd::vector>在向vector添加另一个函数之前,我想检查它是否已经包含在内。 最佳答案 我不认为它们可以相提并论。这是一个example解释std::function比较的一些要点 关于c++-检查两个std::function是否相等,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

c++ - std::function 可以用来存储带有可变参数的函数吗

这个问题在这里已经有了答案:Whycan'tstd::functionbindtoC-stylevariadicfunctions?(2个答案)关闭8年前。我有一个在我的应用程序中传递的结构,其中包含一堆回调函数:typedefstruct{std::functionf1;std::functionf2;std::functionf3;//...andsoon}CallbackTable;我根据当前系统状态,通过将不同的函数绑定(bind)到各种回调来处理应用程序中的状态控制;它工作正常。我现在想做的是添加几个额外的回调,其签名包含可变数量的参数,类似于printf:例如,std::f

C++ 模板 : conditionally enabled member function

我正在创建一个非常小的C++项目,我想创建一个简单的vector类来满足我自己的需要。std::vector模板类不会做。当vector类由char组成时s(即vector),我希望它能够与std::string进行比较.经过一番折腾之后,我编写了既能编译又能执行我想要的操作的代码。见下文:#include#include#includetemplateclassWorkingSimpleVector{public:constElementType*elements_;size_tcount_;//...templateinlinetypenamestd::enable_if::val