草庐IT

INT_OPERATION

全部标签

c++ - 错误 : call of overloaded ‘max(int, int)’ is ambiguous

#includeusingnamespacestd;templateTmax(Tlhs,Trhs){returnlhsintmax(intlhs,intrhs){returnlhs(4,5)如何更正此错误? 最佳答案 这都是因为你的usingnamespacestd;。删除该行。通过该using指令,您将std::max(必须通过iostream以某种方式包含)带入全局范围。因此,编译器不知道调用哪个max-::max或std::max。我希望这个例子对于那些认为使用指令是免费的的人来说是一个很好的稻草人。奇怪的错误是一种副作用。

c++ - : (int) blabla * 255. 99999999999997 或 round(blabla*255) 常识正确的是什么?

最近我在webkit资源中发现了这个有趣的东西,与颜色转换(hsl到rgb)有关:http://osxr.org/android/source/external/webkit/Source/WebCore/platform/graphics/Color.cpp#0111constdoublescaleFactor=nextafter(256.0,0.0);//it'sheresomethinglike255.99999999999997//..somecodeskippedreturnmakeRGBA(static_cast(calcSomethingFrom0To1(blablabl

c++ - 为什么 64 位 GCC 在分配数组时警告将 const int 转换为 long unsigned int?

我有一个如下所示的文件test.cpp:voidf(constintn){unsignedchar*a=newunsignedchar[n];delete[]a;}intmain(){f(4);return0;}使用-Wsign-conversion在64位GCC中编译它标志产生警告:test.cpp:2:39:warning:conversionto‘longunsignedint’from‘constint’maychangethesignoftheresult[-Wsign-conversion](第2行是调用new的行)。我觉得GCC应该发出关于分配数组的警告似乎很奇怪,但下面

c++ - "char"和 "small int"比 "int"慢吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Performanceofbuilt-intypes:charvsshortvsintvs.floatvs.double嗨。假设您拥有32位处理器。8位char和16位shortint类型是否比native32位int慢?使用64位longlongint怎么样?默认情况下硬件是否支持这种数据类型,还是通过使用额外的指令将它们全部转换为32位数据?如果我必须存储少量字符,将它们存储为整数不是更快吗?

c++ - 如何诊断 g++ 4.3.4 中对 sqrt(int&) 的模糊调用

我的代码如下:#include#includefloatfoo(floatf){std::cout即使使用-pedantic-std=c++98-Wall-Wextra也不会报告最后一行中的调用不明确,但它不一定在其他编译器中工作,因为同样的原因foo(i)没有。gcc将以下内容添加到命名空间std:templateinlinetypename__gnu_cxx::__enable_if::__value,double>::__typesqrt(_Tp__x){return__builtin_sqrt(__x);}也就是说,它为所有整数类型X添加了inlinedoublesqrt(X)

c++ - 当 int 不是 int (intX_t)

我有些头疼导致这里出现问题。基本上,我正在尝试使库与不同的Arduino系统兼容(不是Arduino的问题)。我遇到了类型不再匹配的情况,因为int不再等同于其相同的固定宽度类型。在提供的有限环境中(没有stdlib等),我为我需要的功能编写了自己的类型特征类。使用GCC4.8.1(avr)和Extensa-1x106-GCC(ESP8266)一切正常,但在GCC4.8.3(SAM、SAMD内核)中却不行。基本上我已经敲定了我的代码以显示这个非常基本的代码中的问题(int被确认在失败的32位平台编译器上有4个字节):templatestructis_same{enum{value=fa

c++ - 为什么 Member Detector fallback 必须是 int?

我以为我正在理解这个类(从这里https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Member_Detector):templateclassDetectX{structFallback{intX;};//addmembername"X"structDerived:T,Fallback{};templatestructCheck;typedefcharArrayOfOne[1];//typedefforanarrayofsizeone.typedefcharArrayOfTwo[2];//typedefforanarrayofsizetw

c++ - 如何将 vector<unsigned char> 写入文件,后跟一个 unsigned int

我必须对5个unsignedcharvector进行分组(data_length=5)。在组的末尾,我想添加一个ID组并将它们(组数据+它的ID)写入文件。其中组ID类型integer。我按以下代码执行该任务。这是对的吗?下图显示了我正在服用的东西#definerandom(x)(rand()%x)std::ofstreamfilewrite("abc.raw",std::ios::out|std::ofstream::binary);unsignedintiter=0;unsignedintdata_length=5;unsignedintID_data=0;//----------

c++ - int a=int(); C++98 中会发生什么?

在您认为将其标记为重复之前,请完整阅读该问题。像这样的语句inti=int();大多数程序员会说这里有值初始化&i会被值初始化。(0作为输出)。但它也在C++98编译器上打印0作为输出。以下程序是我在C++98实现上测试的,输出为0。#includeintmain(){inti=int();std::cout在C++98以上程序中不要说i是值初始化,因为C++03引入了值初始化。那么我是如何在这里初始化的呢?它真的是构造函数调用吗?int()看起来像构造函数调用。正如Bjarnestroustrup在他的《C++编程语言和TC++PL》一书中所说,原始类型在C++中也有默认构造函数。C

c++ - 为什么 new int (*)[3] 是错误的?

typedefint(*A)[3];int(**p)[3]=newA;//OKint(**q)[3]=new(int(*)[3]);//OKint(**r)[3]=newint(*)[3];//error来自GCC的错误是error:expectedprimary-expressionbefore')'token。为什么这个表达式中需要额外的括号? 最佳答案 标准将new-type-id定义为最长的new-declarators序列。还有一个注释,它说明了类似的情况(尽管它分配了指向函数的指针):5.3.4New[expr.new]