草庐IT

bool_val

全部标签

c++ - 错误 C2719 : '_Val' : formal parameter with __declspec(align ('16' )) won't be aligned?

我正在尝试为D3DXMATRIXA16创建一个vector像这样:vectormatrices;并收到错误:d:\ProgramFiles\MicrosoftVisualStudio9.0\VC\include\vector(717):errorC2719:'_Val':formalparameterwith__declspec(align('16'))won'tbealignede:\projects\emuntitled\em\emscratch\emshadow.h(60)::seereferencetoclasstemplateinstantiation'std::vector

c++ - 在 c/c++ 中添加两个 bool 值

我试着把bool值加在一起,说:booli=0,j=0,k=0;cout结果为4,这意味着结果被转换为'int'值。我想问:这是C/C++的标准操作吗?编译器是否总是保证在溢出时将临时值转换为更大的类型?谢谢!感谢您的回答,一个跟进问题:说,如果我这样做:unsignedshorti=65535,j=65535;cout结果是4。为什么它被提升为'int'? 最佳答案 导致转换的不是溢出,而是你做算术的事实。在C++(以及行为起源的C)中,内置类型的基本算术运算符的操作数在进行计算之前经过一组定义明确的提升。这些规则中最基本的(有些

bool 值的 C++ 短路

我是C++的新手,很好奇编译器如何处理bool值的惰性求值。例如,if(A==1||B==2){...}如果A确实等于1,那么B==2部分是否曾经计算过? 最佳答案 不,B==2部分未被评估。这叫做short-circuitevaluation.编辑:作为RobertC.Cartainorightlypointsout,如果逻辑运算符重载,则不会发生短路评估(话虽如此,我不明白为什么有人会重载逻辑运算符)。 关于bool值的C++短路,我们在StackOverflow上找到一个类似的问题

c++ - 显式运算符 bool 错误

我得到CompilerErrorC2071当我尝试实现explicitoperatorbool时:classC{public:explicitoperatorbool()const{return!!*this;}};为什么?我该如何解决这个问题?我正在使用VisualStudio2012RC。 最佳答案 VisualStudio2012不支持显式转换运算符,请参阅C++11FeaturesinVisualC++11.这些文章讨论了safeboolidiom:http://www.artima.com/cppsource/safebo

c++ - 将流运算符 >> 评估为 bool 值

以下代码在VisualStudio2008中编译但在VisualStudio2013及更高版本中失败。std::stringstr("foo");std::stringstreamss(str);floatf=0;if((ss>>f)==false)std::cout错误信息是errorC2678:binary'==':nooperatorfoundwhichtakesaleft-handoperandoftype'std::basic_istream>'(orthereisnoacceptableconversion)并通过如下更改成功修复:if(!(ss>>f))std::cout

c++ - 检查 bool 是否在混合 C/C++ 中定义

所以我在继承一些代码时遇到了问题。此代码在纯C环境中构建良好,但现在我需要使用C++来调用此代码。标题problem.h包含:#ifndef_BOOLtypedefunsignedcharbool;staticconstboolFalse=0;staticconstboolTrue=1;#endifstructastruct{boolmyvar;/*andabunchmore*/}当我将其编译为C++代码时,出现errorC2632:'char'followedby'bool'isillegal如果我将#include"problem.h"包装在extern"C"{...}中,我会得到

c++ - bool 在内存中是如何表示的?

如前所述inthedocs,bool数据类型至少占用一个字节的内存。AsimilarquestionwasaskedonSObefore(Howabooltypevariableisstoredinmemory?(C++)),但是这个讨论和文档似乎只讨论了boolean数据类型占用的空间量,而不是当我在内存中实际发生的事情这样做:boolb=true;那么内存中到底发生了什么?未用于存储此信息的7位会发生什么变化?标准是否为此规定了行为?它们是未定义的吗?或者C++总部的某个人只是这样做了:enumbool:char{false=0,true=1}; 最佳答

c++ - 为什么编译器选择 bool 而不是 string 来进行 L""的隐式类型转换?

最近引入了一个方法的重载,应用程序开始失败。终于追踪到,新方法在我没想到的地方被调用了。我们有setValue(conststd::wstring&name,conststd::wstring&value);std::wstringavalue(func());setValue(L"string",avalue);std::wstringbvalue(func2()?L"true",L"false");setValue(L"bool",bvalue);setValue(L"empty",L"");它已更改,以便在存储bool值时我们使用相同的字符串(字符串的内部数据存储)setValu

c++ - 使用 bool operator== 比较对象

所以,看了一些SO问答,还是不明白为什么要用friendbooloperator==(BaseClassconst&left,BaseClassconst&right)代替booloperator==(BaseClassconst&right)现在我有这样的东西http://pastebin.com/pKsTabC0(已修复)-它似乎工作正常。但也许我错过了什么?有什么建议吗?更新1好的,我更改了源以使其正常工作http://ideone.com/fIAmB.删除了不必要的virtual并添加了const。我仍然不明白为什么要使用friend... 最佳答案

c++ - 为什么全局 const char 需要 "static"而 bool 不需要?

共享header。我能做到:constboolkActivatePlayground=false;包含在多个文件中时工作正常。我不能这样做:constchar*kActivePlayground="kiddiePool";导致错误:重复的符号。但这行得通:staticconstchar*kActivePlayground="kiddiePool";为什么constchar*需要static而constbool不需要?另外,我认为static不是必需的,因为const总是static隐式? 最佳答案 在C++中,const变量默认有静