草庐IT

simple_bind_s

全部标签

c++ - std::bind 和函数模板

我目前正在尝试使用std::bind创建一个std::function来自函数模板templatevoidprintRange(Iteratorfirst,Iteratorlast){std::copy(first,last,std::ostream_iterator(std::cout,""));std::cout概念上,我想要的是intmain(){std::vectorv{1,2,3};autof0=std::bind(printRange,v.begin(),v.end());//won'tcompile,ofcoursef0();return0;}我知道这不能编译,我必须在实

c++ - 您能否通过类类型上的结构化绑定(bind)违反 ODR

如果tuple_size模板是一个完整的类型,结构化绑定(bind)特性表示它会像分解一样与元组一起使用。当std::tuple_size在程序的某一点是给定类型的完整类型而在另一点不完整时会发生什么?#include#includeusingstd::cout;usingstd::endl;classSomething{public:templateautoget(){cout(this->a);}std::tuplea{1};};namespace{autosomething=Something{};}voidfoo(){auto&[one]=something;std::get(

c++ - 区分 boost::bind 中具有相同名称的 const 和非常量方法

例如,当我将boost::bind与一个既声明为const又声明为非const的方法名称一起使用时,我遇到了不明确的错误,例如boost::bind(&boost::optional::get,_1)我该如何解决这个问题? 最佳答案 问题和解决方法在Boost.Bind的常见问题解答部分进行了描述引用。您还可以使用如下实用函数:#include#includetemplateRet(Obj::*const_getter(Ret(Obj::*p)()const))()const{returnp;}templateRet(Obj::*n

c++ - OpenCV Python 通过图像数据绑定(bind)非常慢的迭代

我最近在OpenCVc++中使用了一些基于颜色跟踪对​​象的代码,并在python绑定(bind)中重写了它。整体结果和方法是相同的,明显减去语法。但是,当我在视频的每一帧上执行下面的代码时,它需要将近2-3秒才能完成,因为c++变体(也在下面)相比之下是即时的,我可以在帧之间迭代,就像我的手指可以按下一个一样快键。有什么想法或意见吗?cv.PyrDown(img,dsimg)foriinrange(0,dsimg.height):forjinrange(0,dsimg.width):ifdsimg[i,j][1]>(_RED_DIFF+dsimg[i,j][2])anddsimg[i

c++ - 将 Lua 绑定(bind)胶水代​​码与我的游戏引擎的其余部分隔离开来

我想为我的游戏引擎添加对Lua脚本的全面支持。我为自己设定的最大目标之一是保持完全模块化。这意味着,除了Lua绑定(bind)部分之外,我不希望引擎的其余部分使用任何特定于Lua的功能。到目前为止,这已被证明并不困难。纯C++到Lua的功能绑定(bind)部分-例如绑定(bind)Vector、Color和Entity对象,以及Draw库或Physics库等模块很容易与引擎的其余部分隔离。现在,我的问题在于事件。我需要为脚本编写者提供一种响应游戏事件的方法。这涉及从引擎调用Lua函数。示例:在Lua中的C++实体上调用OnCreate、OnUpdate、OnCollide。这些事件发生

c++ - 是否可以编写通用的重新绑定(bind)模板?

在不专门针对每个类模板/类的情况下,是否可以编写一个通用的“重新绑定(bind)”元函数,以便给予templatestructfoo;structbar;以下is_same,float>,foo>is_same,bar>也许is_same,float>,std::vector>返回一个等价于true的类型? 最佳答案 当然可以。但请注意,任何采用可变模板参数列表的模板模板参数仅限于接受仅具有类型参数的模板,而不是非类型参数。换句话说,下面的一般情况不适用于std::array,因为它的第二个参数是一个整数。您必须添加一个特例。主模板

c++ - 链接和绑定(bind)有什么区别?

我在阅读有关这两件事的文章时感到困惑,这两者之间有什么区别? 最佳答案 绑定(bind)是一个在多个上下文中使用的词。它总是与一个事物与另一个事物的连接有关,但是发生绑定(bind)行为的时间可能会有所不同。有一个绑定(bind)时间的概念,或者某个组件绑定(bind)到另一个组件的时间点。绑定(bind)时的基本列表是:(1)编译时绑定(bind),(2)链接时绑定(bind),(3)加载时绑定(bind),(4)运行时绑定(bind)。编译时绑定(bind)发生在编译源代码时。对于C/C++,有两个主要阶段,执行源文本替换(例如

c++ - 如何创建一个带有参数的函数,该参数将是 boost::bind 的结果?

所以我想创建一个像这样的函数:voidproxy_do_stuff(boost::bindreturn_here){return_here();//callstuffpasedintoboost::bind}我可以这样调用它:proxy_do_stuff(boost::bind(&myclass::myfunction,this,my_function_argument_value,etc_fun_argument));如何做这样的事情? 最佳答案 boost::bind的返回类型是boost::function类型。见下文:voi

c++ - std::bind 与指向函数对象的指针

给定一个指向函数对象的指针:std::shared_ptr>f;C++11中是否有内置结构允许在std::bind语句中使用此指针?例如:std::functiong=std::bind(built_in(f),0.0);我正在做的是将可变参数模板用作:templatestd::functionget_fn(conststd::shared_ptr>&f){return[=](Args...args)->Ret{return(*f)(args...);};}这让我可以写:std::functiong=std::bind(get_fn(f),0.0);提前致谢。编辑:我应该更清楚。为了优

c++ - 如何将 C++ 函数绑定(bind)到使用 luabind 返回多个值的 lua?

是否可以使用luabind来绑定(bind)以下函数?voidretByRef(int&a,int&b){a=10;b=10}我正在尝试以下操作,但它只适用于具有一个参数的函数def("retByRef",&retByRef,pure_out_value(_1))有没有办法为每个参数指定一个策略? 最佳答案 好的,我找到了一个可以用来添加策略的+运算符,所以def("retByRef",&retByRef,pure_out_value(_1)+pure_out_value(_2)) 关于