草庐IT

bool_constant

全部标签

c++ - cppcheck 认为我有 "Redundant code: Found a statement that begins with numeric constant"

Cppcheck(version1.46.1)对像这样的枚举发出以下警告:enumDATABASE_TYPE{DATABASE_TYPE_UNKNOWN=-1,//Redundantcode:Foundastatementthatbeginswithnumericconstant我不认为这是多余的。能够做那样的事情非常重要。这是cppcheck的错误还是我没有看到什么?更新我设法将它归结为一个最小的例子。这因为cppcheck有2个(更多)错误而变得复杂,这使得我的减少看起来没有效果。共有5个文件:a.h、a.cpp、b.h、b.cpp和inc。h包含以下内容。VC9在没有警告的情况下

c++ - 逻辑和 bool 变量的奇怪断言失败

我的代码中的一些断言刚开始表现得很奇怪,我想知道以前是否有人遇到过类似情况。一个简短的代码片段,如:#includeclassA{protected:boolisM,isN;public:voidsomeFunction();};A::someFunction(){assert(this->isM&&this->isN);...}产生一个断言失败结果。另一方面,稍微更改代码后:A::someFunction(){assert(this->isM);assert(this->isN);...}断言没有问题地通过并且函数正常完成。函数正常完成是预期的功能,因为bool变量是在实际调用som

c++ - std::regex_constants::optimize 使用的优化技术

我正在使用std::regex,在阅读std::regex_constants中定义的各种常量时,我​​遇到了std::optimize,阅读它,听起来它在我的应用程序中很有用(我只需要一个正则表达式实例,在开始时初始化,但在整个加载过程中多次使用它)。根据workingpapern3126(第1077页),std::regex_constants::optimize:Specifiesthattheregularexpressionengineshouldpaymoreattentiontothespeedwithwhichregularexpressionsarematched,a

c++ - 如何将提取运算符 (>>) 与 vector<bool> 一起使用?

以vectorsomeVector为例和istringstreamsomeStringStream你可以这样做:for(inti=0;i>someVector[i];}我知道vector是一个有效的实现,operator[]返回一个引用对象。对于这段代码,我应该使用索引而不是迭代器,主要是为了提高可读性。目前,我正在使用这个:for(inti=0;i>temp;someVector[i]=temp;}有没有更直接的实现方法? 最佳答案 如果您想使用整个流,您可以使用std::copy或std::vector范围构造函数:std::s

从 double 到 bool 的 c++ 隐式转换是危险的

这是我第二次犯大错,创建了一个bool类型的变量而不是double。例如考虑doublef(){returntrue;}boolsomething(){return0.0;}doubleg(){boolx=0.0;//(1)if(something()){x=f();//wheref()isafunctionreturningadouble}returnx;}我认为编译器应该告诉我这很糟糕,但我的编译器(g++)不会发出带有-Wall的小警告...,这会导致稍后在测试中出现错误。gcc/g++是否有一些选项可以发出警告(例如在第1行,这显然是错误的)? 最佳

C++ bool 函数返回 56

我有一个返回bool值的函数:boolrestart(){std::stringanswer;boolanswered=false;while(answered==false){cout>answer;if(answer=="y"||answer=="Y"||answer=="1"||answer=="yes"){returntrue;}if(answer=="n"||answer=="N"||answer=="0"||answer=="no"){returnfalse;}}}当我调用它时:cout我得到输出:Doyouwanttoplayagain?y/n:y56谁能看到如何解决这个

c++ - 返回 bool 值的函数的命名约定是什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我的母语不是英语,所以我对返回bool值的函数的命名约定感到困惑。我知道以下函数名称是约定俗成的:boolis_valid();boolis_sorted();boolis_empty();boolhas_children();boolcan_draw();但是,我想知道是否还有其他以动词开头而不是“is,are,can,has,etc.”的函数名是否也

c++ - 获取非专用 std::vector<bool> 容器的标准方法

是否有一种标准方法(或至少是半标准的,在所有流行的编译器中实现)来获得非专用、非优化、连续的std::vector容器?我有一些处理std::vector的通用代码假设它们都是这样的标准的、连续的容器。我目前的解决方法是使用std::vector它只存储0和1,这正是我想要的内容,但拥有正确的vector类型会更好。 最佳答案 作为解决方法,您可以使用其他类型,char会出现在您的脑海中。否则你可以围绕bool编写一个包装器,比如:structmy_bool{operatorbool()const{returnb;}operator

C++ BOOL (typedef int) vs bool 性能

我在某处读到,使用BOOL(typedefint)比使用标准的c++类型bool更好,因为BOOL的大小是4个字节(即4的倍数),并且它将变量的对齐操作保存到寄存器或其他东西中线...这有什么道理吗?我想即使您使用bool(1字节),编译器也会填充堆栈帧以保持4的倍数对齐?我绝不是对齐、寄存器等基础工作方面的专家,所以如果我完全错了,我提前道歉。希望指正。:)干杯! 最佳答案 首先,sizeof(bool)不一定是1。是implementation-defined,让编译器编写者可以自由选择适合目标平台的大小。此外,sizeof(i

c++ - 基于 bool 模板参数的启用方法

我想实现一个基于bool模板参数的私有(private)函数。类似的东西:#includeusingnamespacestd;templateclassAggregator{public:voidfun(inta){funInternal(a);}private:voidfunInternal(inta,typenamestd::enable_if::type*=0){std::cout::type*=0){std::couta1;Aggregatora2;a1.fun(5);a2.fun(5);return0;}但上面的程序无法编译:错误:'structstd::enable_if'