草庐IT

c++ - 到处使用 std::size_t 是一种好习惯吗?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Whentousestd::size_t?我的代码中有很多常量是无符号数,例如计数器、截止频率、长度等。我开始对所有这些使用std::size_t,而不是int或unsignedint。这样做对吗?我启动它是因为STL容器将它用于它们的大小,它用于字符串位置等。

c++ - 科学记数法的类型

ints=1e9;1e9的类型是什么,它有多精确?(是否正好等于1000000000?)如果可能,将值/变量的类型打印到stdout会很有用。 最佳答案 1e9是一个double,在IEEE浮点表示法中具有精确表示。C++标准不强制要求IEEEfloat。s是一个int,因此double值将自动转换为int。这如何发生在某种程度上取决于实现。在如今的大多数机器上,这种转换意味着s将被赋予初始值1000000000。 关于c++-科学记数法的类型,我们在StackOverflow上找到一个

c++ - 使用 typeid 在派生类之间进行比较

我有一个指向用户插入的派生对象的指针vector(所以我猜正确的术语是“仅在运行时已知”)::vectorvect;派生类是Male和Female。我想对vector进行迭代以仅选择Female对象并调用它的复制构造函数。我想到了3个解决方案:使用旗帜;使用typeid在Female的默认构造函数中插入对复制构造函数的调用,以便每次用户创建一个时,自动创建双胞胎。对于许多类型的派生类,我不喜欢第一个选项。我也不喜欢第三种选择,因为会导致关系问题(世界了解每个女性,但女性无法了解世界)。所以我应该使用第二个选项:例子typeid(vect.at(i))==typeid(Female)这个

c++ - 管理 C++ 单精度和 double 混合计算的规则是什么?

例如,这些变量:result(double)a(double)b(float)c(float)d(double)一个简单的计算:result=a*(b+c)*d如何以及何时转换类型以及如何确定每次计算执行的精度? 最佳答案 所有操作都是在相同类型的对象上完成的(假设是正常的算术运算)。如果您编写的程序使用不同的类型,那么编译器将自动升级ONE参数,使它们相同。在这种情况下,花车将升级为double:result=a*(b+c)*dfloattmp1=b+c;//Plusoperationdoneonfloats.//Sotheres

c++ - 使用 0xFFFFFFFF 是一种可靠的方法来设置 32 位类型的所有位吗?

有这段代码是用WindowsSDK编译的:UINTcFiles=DragQueryFileW(hDrop,0xFFFFFFFF,NULL,0);DragQueryFileW()有这个签名:UINTDragQueryFileW(HDROP,UINT,LPWSTR,UINT);和UINT在SDKheader的某处定义如下:typedefunsignedintUINT;对于int肯定是32位的平台。像往常一样,像UINT这样的类型意味着具有独立于系统位数的固定宽度,因此如果必须在其他平台上重新编译相同的代码,其中DragQueryFileW()以某种方式重新实现,也将有一个相应的typede

c++ - int(int)& 或 int(int) const & 是什么类型?

std::is_function专用于具有类似于以下签名的类型:int(int)&请看这里:std::is_function但这既不是指向成员方法的指针,其签名可能是:int(T::*)(int)&也不能是对函数的引用:int(&)(int)那么这个奇怪的签名是什么? 最佳答案 它是一种只存在于类型系统中的函数类型。它永远无法创建。Butthisisneitherapointertoamembermethod,whichsignaturecouldbe:int(T::*)(int)&就是这个,没有指针。类型系统允许您将其描述为一种类

ios - 将 "incompatible pointer types sending ' subclassA' 抑制为 'subclassB' 类型的参数 "clang

Xcode引发“不兼容的指针类型将‘subclassA’发送到‘subclassB’类型的参数”警告。用clang编译。在出现警告的情况下,我使用一个[subclassAisKindOfClass:[subclassBclass]]...确保兼容的指针使用。我想要这样的东西:#pragmaclangdiagnosticpush#pragmaclangdiagnosticignored"-Warc-performSelector-leaks"//warning-raisingcode#pragmaclangdiagnosticpop但对于提出适当的警告。IE。忽略指定诊断的clang标志

ios - 我如何从 SEL 中获取参数类型

我有一个来自字符串的SEL。我可以使用“method_copyArgumentType”,这是一个运行时函数来获取每个参数的类型,就像这样char*arguType=method_copyArgumentType(m,i);//heremisaMethodtype,andiistheindexoftheargumentNSLog(@"methodargNum=%d,%s",i,arguType);通过这种方式,如果参数类型是一个id,它会打印“@”,但我无法分辨它是什么类,比如NSArray或NSDictionary。有没有办法获取参数的具体类型? 最佳答案

ios - Swift 4.1 数组协议(protocol)一致性

我们刚刚切换到swift4.1,我们在数组的类型一致性方面遇到了一些困难。这是旧方法:publictypealiasXDRCodable=XDREncodable&XDRDecodablepublicprotocolXDREncodable:Encodable{funcxdrEncode(toencoder:XDREncoder)throws}publicprotocolXDRDecodable:Decodable{init(fromBinarydecoder:XDRDecoder)throwsinit(fromBinarydecoder:XDRDecoder,count:Int)th

ios - RubyMotion >> 如何将变量转换为特定类型?

由于RubyMotion似乎在编译时进行了大量类型转换,因此我无法将正确的数据类型传递到NSMutableURLRequestPOST请求中。它期待NSData,但我无法弄清楚如何在不引发错误的情况下将NSString变量键入NSData。如果不进行类型转换,我们的SOAP服务器将无法正确接收数据,我会收到可怕的(而且模糊的)“根级别的数据无效。第1行,位置1”错误。这是有问题的行:postXML="hey"postData=(postXMLasNSData).dataUsingEncoding(NSUTF8StringEncoding,allowLossyConversion:tru