草庐IT

const_object

全部标签

c++ - 如果右值没有绑定(bind)到 const 引用,这将如何影响移动语义和完美转发?

在http://www.reddit.com/r/IAmA/comments/1nl9at/i_am_a_member_of_facebooks_hhvm_team_a_c_and_d/ccjm2qs,AndreiAlexandrescu写道:IthinkbindingrvaluestoconstreferenceshasbeenthesmallmistakethatcausedthervaluereferencesHindenburg...Itwouldbealongdiscussion.Bindingrvaluestoconst&madesensewhenfirstintroduc

使用 decltype 和 constness 的 C++11 尾随返回成员函数

我正在尝试使用decltype理解C++11中基于尾随返回的新函数声明语法。在下面的代码中,我尝试定义一个返回const&的成员函数,以允许对i进行只读访问#include#includestructX{int&i;X(int&ii):i(ii){}//autoacc()const->std::add_const::type{returni;}//failstheconstnesstestautoacc()const->decltype(i){returni;}//failstheconstnesstest//constint&acc()const{returni;}//worksas

c++ - 如何跨指针保持 const 正确性?

我正在尝试对真正为const的类进行const操作-它不会更改该类指向的数据。例如:classNode{public:intval;};classV{public:Node*node;//whatisthechangethatisneededhere?voidconst_action()const{node->val=5;//errorwantedhere}voidaction(){node->val=5;//errorisnotwantedhere}}; 最佳答案 您可以使用模板在指针上强制执行const正确性,而无需更改类的含义

C++/Objective-C++ - 如何在 NSDictionary 中存储 C++ 变量?

我有一个C++std::vector>类型的变量这是在C++中定义和填充的类(从我的Objective-C++类中调用。)我想将此对象存储在NSDictionary中-或某种等价物。我显然不能简单地添加std::vector>到NSDictionary因为它不是id类型.所以我的问题是:如何实现相同的概念?如何存储std::vector>在各种字典中?我可以将vector对象包装在id中吗?以某种方式输入?即使它不是直接字典,我可以使用另一种方法吗?我还需要它是可变的,这样我就可以在运行时添加键/对象。我看过std::map,但我不确定这是否是我要找的。我也没有发现任何关于它可变的例子

c++ - Qt 中的 Objective-C with Mavericks

我一直在Qt中混合使用Objective-C和C++,没有任何问题;在需要时使用.mm文件。将我的构建机器升级到Mavericks后,我最初注意到缺少框架header,因此安装了XCode命令行工具,解决了这个问题。现在,我在编译Objective-C文件时遇到问题,错误提示框架中的代码。例如:-System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSUserNotification.h:16:44:error:missing','betweenenumeratorsNSUserNotificationAc

C++ 从 ‘const type* const’ 到 ‘type*’ 的无效转换

我有一个非常愚蠢的问题(我认为)。很长时间没有用C++编码,但我无法弄清楚这个问题。我有这个类:#includeclassNode{private:QList_adjacent;public:Node();boolisConnectedTo(Node*n)const;};isConnectedTo()的实现:boolNode::isConnectedTo(Node*n)const{return_adjacent.contains(n)&&n->_adjacent.contains(this);}我在return行中收到以下错误:Node.cpp:Inmemberfunction‘con

PostgreSQL提取键来自JSONB,异常“无法在标量上调用JSONB_OBJECT_KEYS”

我正在尝试与Postgres的JSONB相处。这里有很多问题,我想做的就是这样的事情:SELECTtable.column->>'key_1'asaFROM"table"我尝试了->还有一些括号的组合,但是我总是在nil中得到零。所以我试图获取所有钥匙首先看看它是否识别JSONB。SELECTjsonb_object_keys(table.column)asaFROM"table"这引发了一个错误:cannotcalljsonb_object_keysonascalar因此,要检查列类型(我创建的列类型,所以我知道是JSONB,但无论如何)SELECTpg_typeof(column)a

c++ - QObject::connect: 无法对 MyClass*const 类型的参数进行排队

我有这样的类(class):#includenamespacetaservices{classProcessHandle:publicQObject{Q_OBJECTpublic:ProcessHandle(constvoid*constprocessContextPointer,constQString&process_id="",QObject*parent=0);ProcessHandle();signals:voidprogress(constProcessHandle*constself,constintvalue);private:staticvoidregisterAsM

c++ - (&const_object) 可以评估为临时地址

我曾与一位程序员讨论过,其要点是foo中的以下断言可以通过或不通过,具体取决于编译器。#includeconstinti=0;voidfoo(constint&i){assert(&::i==&i);}intmain(){foo(i);}他告诉我,(&i)表达式可以计算为某个临时对象的地址。因为我有疑问,所以我在这里。如何将对temp的引用传递给函数,如果在函数中我可以检查并使用i和参数的地址做任何我想做的事情,并且必须保留预期的语义。?例如#includeconstinti=0;boolfunc(constint&i){return&::i==&i;}intmain(){consti

c++ - 一个 const std::function 包装一个非常量 operator()/mutable lambda

考虑以下示例:#include#includestructA{inti;voidoperator()(){std::coutconst&fun){fun();}intmain(){conststd::functionf{A{}};test(f);test(f);}在这里,conststd::function能够调用非constoperator().输出:12如果我提供一个mutablelambda,也会发生同样的情况,例如test([x=0]()mutable{++x;});这怎么可能?conststd::function可以包装可变仿函数是否正常? 最佳答