草庐IT

additional_bindings

全部标签

c++ - 推荐用于跨平台进程内动态库绑定(bind)的 C++ 包装器(即轻量级、高性能 COM 或 CORBA)

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我们正在开发一个应用程序,该应用程序将具有插件“架构”,以允许该应用程序的消费者提供他们自己的专有算法。(我们基本上会有一套解析器,也允许第三方提供他们自己的解析器)领域空间需要非常高的性能,所以进程外绑定(bind)是行不通的,我们宁愿让CORBA和COM这样的重量级事物单独存在。基本上我们正在寻找一个简单的跨平台包装器:从相对路径加载库提供特定dll/.so到某些

c++ - 类比理解C++17中的结构化绑定(bind)

我正在尝试理解C++17中引入的结构化绑定(bind)。cppreference上的解释对我来说不是很明显,但看起来像cv-autoref-operator[x,y,z]=...大致等同于(不考虑数组大小写)cv-autoref-operatorunique_name=...#definexunique_name.member_a#defineyunique_name.member_b#definezunique_name.member_c这里的重点是xyz不是独立定义的变量,只是返回值成员的别名。并且cv-autoref-operator适用于返回值,而不是别名(这里的语法可能会产生

c++ - 使用 bind1st 和 mem_fun 引用成员函数

我有一个C++类,我在其中尝试使用std::bind1st将成员函数绑定(bind)到“this”参数。例如:classMyClass{public:voidFoo(){usingnamespacestd;//thisworksfinethis->Bar();//thisalsoworksfinemem_fun(&MyClass::Bar)(this);//thisdoesnotbind1st(mem_fun(&MyClass::Bar),this)();//thisisnotapossibilityforthisprogramboost::bind(&MyClass::Bar,thi

c++ - C++17 中结构化绑定(bind)引入的标识符有哪些类型?

据我所知,C++17中结构化绑定(bind)引入的标识符实际上是对某些“隐藏”变量的引用。这样auto[a,b]=std::make_tuple(1,2);有点等同于autoe=std::make_tuple(1,2);auto&a=std::get(e);auto&b=std::get(e);但是,如果我打印出std::is_reference::value,我得到0在第一种情况下1在第二。这是为什么? 最佳答案 ifIprintoutstd::is_reference::value,Iget0inthefirstcase1int

c++ - 基于自动范围的结构化绑定(bind)与 vector

我正在尝试循环一个元组vector:std::vector>tupleList;通过使用基于范围的for循环和结构化绑定(bind):for(auto&&[x,y,z]:tupleList){}但是VisualStudio201715.3.5报错:cannotdeduce'auto'type(initializerrequired)但以下确实有效:for(auto&&i:tupleList){auto[x,y,z]=i;}这是为什么? 最佳答案 它确实有效,但智能感知不使用相同的编译器:因此,即使编辑器中显示红线和错误,它也会使用I

c++ - 绑定(bind)到函数参数的引用会延长该临时对象的生命周期吗?

我有这段代码(简化版):constint&function(constint¶m){returnparam;}constint&reference=function(10);//usereference我不太确定C++03标准$12.2/5措辞的程度Thetemporarytowhichthereferenceisboundorthetemporarythatisthecompleteobjecttoasubobjectofwhichthetemporaryisboundpersistsforthelifetimeofthereference...在这里适用。上面代码中的ref

c++ - std::function 和 std::bind 做动态内存分配吗?

如果我这样做:-classThing{...voidfunction(conststd::string&message);};std::list>work;在“Thing”的一些成员中work.push_back(std::bind(&Thing::function,this,"Hello"));调用std::bind或使用std::function是否会导致使用new或其他方式进行任何动态内存分配?或者所有的存储空间都是在编译时分配的?如果标准没有说明任何内容,那么在visualstudio2012中呢,因为我的程序只需要在那里构建,为了提高效率,我可能需要在我考虑使用这种机制的地方

c++ - 为什么可以间接地将右值绑定(bind)到左值引用而不是直接绑定(bind)?

根据我的阅读和了解,您不能将右值表达式绑定(bind)到左值引用。然而,我所看到的是,您可以将右值绑定(bind)到右值引用,并且由于命名的右值引用本质上是左值,因此您可以将它绑定(bind)到左值引用。不允许将右值绑定(bind)到左值引用背后的原因是什么。是否出于优化目的?举个例子:#includeusingstd::cout;voidbar(int&b){cout 最佳答案 这是C++的基本规则,它可以防止错误:intfoo();int&x=3;//whoopsint&y=foo();//whoops(sometimes)“右

c++ - 一个 VS2010 错误?允许在没有警告的情况下绑定(bind)对右值的非常量引用?

stringfoo(){return"hello";}intmain(){//belowshouldbeillegalforbindinganon-const(lvalue)referencetoarvaluestring&tem=foo();//belowshouldbethecorrectoneasonlyconstreferencecanbebindtorvalue(mostimportantconst)conststring&constTem=foo();}GCC是给出编译错误的好工具:std::string&类型的非常量引用从std类型的临时值初始化无效::字符串VS2008

C++/Xcode 套接字绑定(bind)()错误

当尝试处理来自sys/sockets.hbind()的返回值(应该是int)时,Xcode编译失败并出现错误二进制表达式的无效操作数(“__bind”和“int”)它似乎为bind()提取了不正确的函数定义,因为当我从上下文菜单中选择“跳转到定义”时,它给了我三个选项:2个来自functional.cpp的定义,1个来自sys/sockets。H。我的代码中包含sys/sockets,如何强制编译器使用正确的定义? 最佳答案 使用::bind或去掉usingnamespacestd;。