草庐IT

name-binding

全部标签

c++ - 绑定(bind)引用实际上是否评估操作数?

考虑这段代码:int&x=*newint;赋值的RHS是否实际上取消引用新创建的指针,导致UB由于读取未初始化的变量?或者这是否可以合法地用于以后分配一个值,如x=5;? 最佳答案 据我所知,您所做的一切都不涉及未定义的行为。但是,它确实会立即产生内存泄漏的风险。它可以快速解析(因为&x会解析到泄漏内存的地址,因此可以被删除)但是如果你要离开范围,你将无法检索该指针。编辑:切中要点,如果你要写的话int&x=*newint;x=5;std::cout>x;std::cout代码的行为就像您只是将x声明为intx;一样,除了指针在程序

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++ - eclipse CDT : doesn't show name a macro appears in

当搜索宏引用时,Eclipse显示文件+引用宏的行。我想file+line+function.搜索其他类型的数据(例如函数)将按预期显示文件+行+函数,所以也许应该在Eclipse配置中为宏调整一些东西?有什么想法吗? 最佳答案 更新-2017年1月CDT的下一个版本(CDT9.3,将于2017年6月发布的EclipseOxygen的一部分)将支持显示包含宏引用的函数。参见Bug508216更多细节。此答案的其余部分是原始答案。长话短说EclipseCDT无法显示引用宏的函数,因为在构建索引时此类信息未包含在索引中。图片为确保我们谈

docker 错误提示 iptables No chain target match by that name

错误信息:iptables:Nochain/target/matchbythatname.问题描述重设宿主机网关、重启宿主机network.docker容器处于运行状态,同网段机器不能访问.宿主机执行开放端口命令,提示如下:[root@localhost~]#/sbin/iptables-AINPUT-ptcp--dport8686-jACCEPTiptables:Nochain/target/matchbythatname.解决办法1查看最新防火墙配置(检查端口是否更新,如已经更新请进行下一步)iptables-L2重启Docker服务(更新端口)servicedockerrestart

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++ - 什么时候 'identifier' 在 C++ 中是 'name'?

C++中的“标识符”何时称为“名称”?我主要读到术语“名称”被过度使用,而不是示例中的“标识符”:structS{inti};Sthing1;在这种情况下,thing1是名称还是标识符?还是术语“标识符”和“名称”是类似的?在C中,在引用对象时是否使用术语“名称”? 最佳答案 在C++中,标识符只是一个数字、字母和_的序列。,不以数字开头。这样的标识符可以出现在任何地方,并且不必标识任何东西,尽管它的名字(没有双关语意)。术语名称将含义与特定语法结构相关联。C++规范规定,如果以下语法结构之一表示实体(对象、类、模板和依此类推)或标

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

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