草庐IT

NAME_CONST

全部标签

java - Java 是否有等效的 const 引用?

这是一段代码://GameboardismadeupofSquares.AplayercanplaceGamePiecesonaSquare.publicclassCheckersBoard{publicbooleanPlaceGamePiece(GamePiecegamePiece,intnRow,intnColumn){returnm_theGameBoard[nRow][nColumn].PlaceGamePiece(gamePiece);}privateSquare[][]m_theGameBoard;}假设我正在测试PlaceGamePiece方法(使用junit)并且我需要

c++ - 如何在调用其他函数的 const 和非常量函数之间重用代码

在这个示例代码中,两个process()函数中的循环是重复的。唯一的区别是一个是const而另一个不是。有没有办法去除代码重复,使循环只存在一次?这只是一个示例,但在实际代码中,循环非常复杂,因此出于维护原因,我希望循环只存在一次。#include#includetypedefunsignedintItem;typedefstd::vectorData;structReadOnlyAction{voidaction(constItem*i){//Readitem,donotmodifystd::coutbegin();i!=d->end();i++){Item*item=*i;cb->

c++ - 为什么 const 在这个模板结构中丢失了?

已知以下函数指针有不同的类型:voidfoo_int_ref(int&);voidfoo_const_int_ref(constint&);static_assert(!std::is_same::value,"Typesshouldbedifferent");让我们考虑这个概括:templatevoidfoo(Tt){}templatestructref_vs_const_ref{typedefdecltype(foo)foo_T;typedefdecltype(foo)foo_const_T;};usingint_ref_vs_const_ref=ref_vs_const_ref;

c++ - 从返回迭代器的 const 和非常量方法中删除代码重复

我正在考虑thisquestion关于const和非常量类方法。首选答案取自ScottMeyers的EffectiveC++,其中非常量方法是根据const方法实现的。进一步扩展,如果方法返回迭代器而不是引用,如何减少代码重复?修改链接问题中的示例:classX{std::vectorvecZ;public:std::vector::iteratorZ(size_tindex){//...}std::vector::const_iteratorZ(size_tindex)const{//...}};我无法根据const方法实现非常量方法,因为如果不使用distance()/advanc

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无法显示引用宏的函数,因为在构建索引时此类信息未包含在索引中。图片为确保我们谈

c++ - 为什么编译器不能推断出自动模板参数,除非我添加 const?

我最近遇到这样的代码问题:constexprautolambda=[]{};templatestructLambda{};templatevoidtest(Lambda){}intmain(){test(Lambda{});}clang和GCC都表明它无法推断l。但是,如果我在那里添加const://----vtemplatevoidtest(Lambda){}然后一切都与clang一起工作。海湾合作委员会仍然失败。这里发生了什么事?它不能推导出const本身吗?这是一个GCC错误,因为它在这两种情况下都不推导l吗? 最佳答案 Is

c++ - `invalid initialization of non-const reference` 是什么意思?

编译此代码时,我得到以下error:Infunction'intmain()':Line11:error:invalidinitializationofnon-constreferenceoftype'Main&'fromatemporaryoftype'Main'这是我的代码:templatestructMain{staticMaintempFunction(){returnMain();}};intmain(){Main&mainReference=Main::tempFunction();//我不明白为什么?谁能解释一下? 最佳答案

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++ - 在 C++ 中将指针变量分配给 const int?

我想知道是否有人可以向我解释以下内容:如果我写inti=0;float*pf=i;我得到一个编译错误(gcc4.2.1):error:invalidconversionfrom‘int’to‘float*’有道理——它们显然是两种完全不同的类型。但是如果我写constinti=0;float*pf=i;它编译没有错误。为什么“const”应该在赋值的右侧有所不同?“const”关键字的想法不是能够对常量值强制类型约束吗?我能想到的任何解释都感觉像是假的。而且我的解释都没有解释这个事实constinti=1;float*pf=i;编译失败。谁能解释一下? 最佳

c++ - 从 const 引用初始化非常量对象时防止复制

我现在对C++引用语义有点困惑。假设我有一个返回常量引用的类:classfoo{private:std::mapstuff;public:conststd::map&getStuff(){returnstuff;}};我按如下方式使用它:foof;conststd::map&s=f.getStuff();很好,但是如果我按如下方式使用它:foof;std::maps=f.getStuff();到底发生了什么?如果我理解正确,返回了对stuff的const引用,并在s中创建了一个拷贝,我可以在上面造成严重破坏。有什么办法可以避免这种情况吗?编辑:所以对于std::map无论如何都无法避免