草庐IT

bool_constant

全部标签

c++ - 缩小转换为 MSVC 中的 bool 警告

编译这段代码时:enumB:bool{T=true};structA{boolmember;};voidfoo(constBb=T){Aa{b};//warninghere}voidbar(){constBb=T;Aa{b};}MSVC在foo中发出警告:warningC4838:conversionfrom'constB'to'bool'requiresanarrowingconversion但是编译bar没问题。这是一个proof这是编译器错误还是预期行为? 最佳答案 narrowingconversion定义的相关部分在C++

c++ - 隐式转换为 bool 值并与 bool 文字进行比较

我在回答thisquestion,关于用户定义的转换为bool以及如何禁用其他转换的主题:structfoo{operatorbool()const//Explicitoverloadforbool{returntrue;}templateoperatorT()const=delete;//Everithingwhichisnotabool(Everithingwhich//doesnotfitintheexplicitoverload)would//resolvetothisoperatorandwillfail.};intmain(){foof;boolb=f;//OKinti=f

c++ - 在 gcc 中是否有字符串文字到 bool 转换的警告

在一个相当大的代码库中,我在一个cpp文件中发现了以下构造(重写的片段)intmain(){boolb;//...somecode...;b="False"}这是完全合法的代码,但显然不是故意的。它很容易修复,但自2014年以来一直存在而没有人注意到,因此显然不容易被发现。是否可以让gcc对此发出警告? 最佳答案 g++7和clang++5都不会用-Wall-Wextra-Wpedantic发出警告。Clang有一个名为-Wstring-conversion的警告,可以捕获错误,但gcc没有。我简要浏览了thegccwarningd

c++ - 对 `cv::Stitcher::createDefault(bool)' 的 undefined reference

我尝试在c++中使用opencv拼接图像,当程序编译时,它抛出错误Stitcherstitcher=Stitcher::createDefault();undefinedreferenceto`cv::Stitcher::createDefault(bool)'为了Stitcher::Statusstatus=stitcher.stitch(vImg,rImg);undefinedreferenceto`cv::Stitcher::stitch(cv::_InputArrayconst&,cv::_OutputArrayconst&)'请帮我解决这个错误。在此先感谢您。

c++ - 我可以依靠编译器查找和优化简单的 bool 循环不变量吗?

我有一个类似于下面的循环,它有一个不变量,这里是scaleEveryValueByTwo的永不改变的值。我能否依靠编译器发现这个不变性而不在每次迭代中检查条件(基本上编译为类似于底部代码的东西)?voidloadValuesFromDisk(constboolscaleEveryValueByTwo){std::vectorxs;while(fileHasNewValues()){autox=loadNextValue();if(scaleEveryValueByTwo){x*=2;}xs.push_back(x);}}我当然可以手动将它分成两个循环(见下文)或将缩放部分放在一个单独的

c++ - 模棱两可的调用 : int to double or bool

我有一个参数类,我重载了构造函数以接受bool值或double值。当你给它一个int时,它无法构建:errorC2668:'Parameter::Parameter':ambiguouscalltooverloadedfunctioncouldbe'Parameter::Parameter(std::string,std::string,double)'or'Parameter::Parameter(std::string,std::string,bool)'我相信我有两个选择:使用int默认值重载将我的变量显式转换为double我有很多参数,其中一些是无符号长整型、float等(在多

c++ - 如何在 C++ 中用填充函数初始化双维 bool 数组/字符数组?

我想用真值初始化一个bool类型的二维数组。boola[5][5]={true};//好吧,这行不通fill(a,a+sizeof(a),true);//Thisthrowsanerrortoo.如何完成这项工作? 最佳答案 boola[5][5]{{true,true,true,true,true},{true,true,true,true,true},{true,true,true,true,true},{true,true,true,true,true},{true,true,true,true,true}};正确,但脆弱——

c++动态评估变量类型bool的值

情况:我正在尝试实现两个类,一个称为“特殊”。special有一个成员变量boolconditions和一种方法perform_special.另一个类名为manager它有一个special类型的成员变量.我要manager调用perform_special在其special仅当condition时为成员(member)是真的。到目前为止,我已经实现了这段代码:#includeusingnamespacestd;classspecial{public:special(){};voidperform_special();voidset_conditions(boolcond);bool

c++ - Direct3D11(C++) : Updating Texture coordinates in constant buffer?

我正在尝试使用Direct3D制作一个相当基本的2D引擎。我制作了一个LoadImage()函数,它将图像的所有相当静态的行为存储在一个对象中。(着色器、顶点缓冲区、采样器等)我计划在常量缓冲区中使用矩阵定位顶点。但是,我还想有一个DrawImage()函数,它有一个参数来告诉纹理的哪一部分应该被绘制(剪裁),所以我必须更新纹理坐标。由于顶点缓冲区已经预定义,我想知道是否有一种方法可以通过发送到顶点着色器的常量缓冲区来更新纹理坐标?我希望我的问题足够清楚,如果您有任何疑问,请查看下面的代码。boolGameManager::GMLoadImage(Image*pImage,constc

c++ - OpenCV YAML 解析 bool

我正在使用opencv读取和写入我的应用程序配置文件。我有一个要存储在那里的bool值。它保存为一个整数:camera:auto_gain:1我尝试通过以下方式阅读它:auto_gain=static_cast(static_cast(camera["auto_gain"]));但我收到警告:warningC4800:'int':forcingvaluetobool'true'or'false'(performancewarning)在那种情况下解析bool的正确方法是什么? 最佳答案 如thisquestion中所述,你应该使用: