草庐IT

boolean_field

全部标签

c++ - 二元 boolean 运算符是否具有结合性?

语言定义的a&&b&&c是指(a&&b)&&c还是a&&(b&&c)?哇,Jerry真快。为了加强这个问题:它真的重要吗?a&&b&&c被解释为(a&&b)&&c或a&&(b&&c)之间会有明显的区别吗>? 最佳答案 §5.14/1:“&&运算符从左到右分组。[...]与&不同,&&保证从左到右评估:如果第一个操作数为假,则不评估第二个操作数。”至于何时或如何重要:我不确定它是否真的适用于内置类型。但是,有可能以使其变得重要的方式重载它。例如:#includeclassA;classM{intx;public:M(intx):x(x

c++ - 数组 C++ 中每个 boolean 值 1 位

boolfp[81];根据我的理解,fp应该使用ceil(81/8)字节,因为它是连续的。我说的对吗?我怎样才能证明这一点? 最佳答案 不,缓冲区的大小是实现定义的。请引用以下标准中的引述。因此,您可以期望的大小是81*X,其中X是bool的大小,它是实现定义的。$5.3.3/1-“sizeof运算符产生其操作数的对象表示中的字节数。操作数是一个未计算的表达式,或者是带括号的类型ID。sizeof运算符不应应用于具有函数或不完整类型的表达式,或在声明其所有枚举数之前应用于枚举类型,或应用于此类类型的括号名称,或应用于指定的左值一个位

c++ - boolean 运算符++和——

今天,在编写一些VisualC++代码时,我遇到了一些让我感到惊讶的事情。似乎C++支持bool的++(递增),但不支持--(递减)。这只是一个随意的决定,还是背后有某种原因?编译:staticHMODULEhMod=NULL;staticboolonce=false;if(!once++)hMod=LoadLibrary("xxx");这不是:staticHMODULEhMod=NULL;staticboolonce=true;if(once--)hMod=LoadLibrary("xxx"); 最佳答案 它来自使用整数值作为bo

c++ - 忽略注释 : offset of packed bit-field without using "-Wno-packed-bitfield-compat"

当我尝试编译以下union时,弹出此警告:10:5:note:offsetofpackedbit-field'main()::pack_it_in::::two'haschangedinGCC4.4#pragmaGCCdiagnosticignore"-Wpacked-bitfield-compat"unionpack_it_in{struct{uint8_tzero:3;uint8_tone:2;uint8_ttwo:6;uint8_tthree:4;uint8_tfour:1;}__attribute__((packed))u8_2;uint16_tu16;};#pragmaGCC

c++ - 错误 : variable or field ‘myfunction’ declared void

这个问题在这里已经有了答案:variableorfielddeclaredvoid(6个答案)关闭7年前。在下文中,我没有定义类型doesntexist。voidmyfunction(doesntexistargument){}GCC4.7.2说“error:variableorfield‘myfunction’declaredvoid”我的问题是:编译器在这里指代函数名称为void而不是参数类型是怎么想的?[编辑]在投票之前,请注意这个问题的答案与错误的顺序和-Wfatal-errors停止打印更直接相关的消息有关。这不仅仅是我在尝试一个稍微模糊的编译器消息。

c++ - 矩形多边形的 boolean 运算

Avast各位程序员!我有以下问题:我有两个矩形重叠,如下图所示。我想找出由点ABCDEF组成的多边形。替代的圣诞节描述:红色曲奇刀正在切掉一点黑色曲奇。我要计算黑cookies。每个矩形都是一个具有4个2d顶点的数据结构。实现此目标的最佳算法是什么? 最佳答案 这是一般二维多边形裁剪的特例。Weiler-Atherton算法是一个不错的起点。Wikipediahasasummary和linkstotheoriginalpaper.该算法似乎与您描述的数据结构非常匹配。请注意,您很可能最终会得到一个带有孔的矩形(如果红色完全在黑色内

c++ - Protocol Buffer : how nested (custom) optional fields are to be handled in C++?

读入ProtocolBufferBasics:C++,没有找到符合情况的东西:;以下.proto处理--cpp_out,messageA{requiredint32foo=1;}messageB{optionalAdata=1;}没有生成明显的访问器/setter来设置自定义可选字段(包括我懒得放在这里的“嵌套类型”部分)://accessors-------------------------------------------------------//optional.A=1;inlineboolhas_a()const;inlinevoidclear_a();staticcon

c++ - 适当的 boolean 随机生成器(伯努利分布)

我很想知道randomC++11库中是否有默认的随机boolean生成器。我一直在使用返回0或1的int生成器,然后转换为bool但我正在尝试优化我的代码并认为我可以通过使用from开始一个bool生成器,如果它存在的话。 最佳答案 参见std::bernoulli_distribution在header,恰本地以Bernoullidistribution命名.std::random_devicedevice;std::mt19937gen(device());std::bernoulli_distributioncoin_flip

c++ - 错误 : Field has an incomplete type

quaternion.h:15:错误:字段“v”的类型不完整嗨!我陷入了一个我似乎无法解决的错误。下面是我的代码:#ifndefQUATERNION_H#defineQUATERNION_H#include"vec3.h"classVec3;classQuaternion{public:Quaternion(Vec3v);Quaternion(doublew,Vec3v);Vec3v;我的Vec.h看起来像这样:#ifndefVEC3_H#defineVEC3_H#include"point.h"#include"quaternion.h"#includeclassQuaternion

c++ - 基于 boolean C++ 确定值的最快方法

如果你有一个booleanb和一个inti,这两个例子中哪个更好?intx=i-1;if(!b)x--;或intx;if(b)x=i-1;elsex=i-2;在这两个例子中,如果b为真,则x为i-1,否则x为i-2。您应该将x声明为i-1并在b为false时递减,还是应该使用第二个示例? 最佳答案 如果编译器没有将两个版本优化为相同的最佳程序集,我会感到惊讶。不要将时间浪费在这种微优化上,除非您可以使用分析器证明它们很重要。回答你的问题:这无关紧要。这是关于gcc.godbolt.org的“生成的程序集”比较使用-Ofast。vol