草庐IT

boolean-logic

全部标签

c++ - 你能用重载的 bool() 计算对 boolean 的构造函数调用吗?

如果bool()运算符重载,构造函数调用是否可以评估为bool值?classA{public:A(){};operatorbool()const{returntrue;}}main(){if(Aa=A()){//dostuff}}上面的代码是否有效,或者我是否需要像这样实现main:intmain(intargc,constchar*argv[]){Aa();if(a){//dostuff}}这段代码将在我的代码库中到处都是,因此减少行数、提高易读性和缩小范围很重要,并且会因此得到改进。有什么想法吗? 最佳答案 该代码包含一些句法和

c++ - 评估 boolean 语句的顺序是什么?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Isshort-circuitingbooleanoperatorsmandatedinC/C++?Andevaluationorder?是否有任何由标准或数学规则定义的评估boolean语句的顺序?例如:if(firstTrue&&secondTrue){}我可以确定首先检查firstTrue吗?

java - 'Conditional expressions can be only boolean, not integral.' 是什么意思?

“条件表达式只能是boolean值,不能是整数。”是什么意思?意思?我不知道Java,我知道C++deffenetly不足以理解它的含义。请帮助(在比较C++和Java项目7子项目1中的http://www.javacoffeebreak.com/articles/thinkinginjava/comparingc++andjava.html中找到) 最佳答案 这意味着您需要一个boolean值作为条件,从整数类型的转换不会是隐式的。而不是if(x)你需要if(x!=0)等前者是一个int,在C++中将隐式转换为bool(通过!=0

c++ - boolean 类型操作

这段代码#includeusingnamespacestd;intmain(){boolt=false;cout显示这样的错误invalidoperandsoftypes'bool'and''tobinary'operator怎么了?我不明白这个,请向我解释一下。我认为&&和!是在c++中定义的。怎么了? 最佳答案 "invalidoperandsoftypes'bool'and''tobinary'operator这意味着第二个运算符正在尝试在(!t)和“endl”上执行。优先级高于&&所以你的cout语句像这样执行:(cout添

java - Switch 语句 : Is the logic different in C v/s. Java 等其他语言?

我正在浏览thisC编程教程。它说:Theswitch-statementisactuallyentirelydifferent(fromotherlanguages)andisreallya"jumptable".Insteadofrandombooleanexpressions,youcanonlyputexpressionsthatresultinintegers,andtheseintegersareusedtocalculatejumpsfromthetopoftheswitchtothepartthatmatchesthatvalue.Here'ssomecodethatw

c++ - std::logical_not 和 std::not1 之间的区别?

请举例说明何时使用std::logical_not以及何时使用std::not1!根据文档,前者是“一元函数对象类”,而后者是“构造一元函数对象”。所以最终两者都构造了一个一元函数对象,不是吗? 最佳答案 两者都是仿函数(具有operator()的类),但它们取反的内容略有不同:std::logical_not::operator()返回T::operator!().在语义上,它看到T作为一个值并将其取反。std::not1::operator()返回!(T::operator()(T::argument_type&)).在语义上,

c++ - double not (!!) 用于非 boolean 变量有什么作用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DoubleNegationinC++code.我正在处理生产代码,我在其中遇到过几次这样的语句:Class.func(!!notABool);前几次我认为它是程序员的怪癖(也许是为了强调它是一个条件语句而不是传递给func的数字?)但我遇到过几个语句使用上面的内容,现在我想知道它是否真的有所作为。在大多数情况下,notABool是一个数字(int、float、double...我已经看到了所有3个)我最初的猜测是它类似于打字:Class.func((bool)notABool);但我不完全确定?

c++ - std::logic_error 而不是返回 false

我正在寻找某人对std::logic_error用法的意见,而不是使用复杂的嵌套if/elseif列表返回true/false。我想从很多类似的函数中移动,如下面的函数boolvalidate_data(){std::vectorv;//fillwithdataif(v.find(10)==v.end()){returnfalse;}//otherchecksthatreturnfalse}到boolvalidate_data(){std::vectorv;//fillwithdataif(v.find(10)==v.end()){throwstd::logic_error("erro

C++ 设计 : functions with boolean options

我有一个关于C++中“良好设计实践”的问题。我正在用C++11编写一个数字库,我使用了很多元编程和基于模板的技术。但我有一个非常基本的问题:考虑一个函数,它可以有两个非常接近的行为,除了一个可以由boolean标志激活的选项。我只考虑一个可以由开发人员设置/取消设置的标志,而不是一个可以在运行时设置/取消设置的标志。设计有3种可能性:1)编写两个在名称中带有显式选项的函数:myFunctionFlag1(...);myFunctionFlag2(...);2)使用模板参数:templatemyFunction(...);3)使用可变参数:myFunction(...,constbool

c++ - 我应该使用 __throw_logic_error 吗?

我偶然发现了一段使用函数std::__throw_logic_error来抛出异常的代码。此函数在functexcept.h中声明,显然与throwlogic_error(...)的作用相同。有区别吗?作用是什么?如果有的话,我应该什么时候更喜欢它?谢谢。 最佳答案 不,不要使用它(除非您真的知道自己在做什么)。它在实现内部(因为所有__名称都是)。 关于c++-我应该使用__throw_logic_error吗?,我们在StackOverflow上找到一个类似的问题: