草庐IT

signed-overflow

全部标签

.net - 警告 C4341 - 'XX' : signed value is out of range for enum constant

在编译我的C++.Net应用程序时,我收到104条警告类型:WarningC4341-'XX':signedvalueisoutofrangeforenumconstantXX可以在哪里字符长位二进制GUID...无论我做什么,我似乎都无法删除这些警告。当我双击它们时,它会将我带到使用OdbcParameters的代码的一部分-当我尝试使用我的所有其他东西但没有OdbcParameters的测试项目时,它不会发出警告。知道如何摆脱这些警告吗?他们从我实际上很难看到的代码中发出真正的警告-知道我的应用程序有104个警告让我感觉很糟糕! 最佳答案

c++ - libpng png_set_add_alpha | png_set_filler 错误 : sequential row overflow

我正在尝试使用C读取PNG文件以用于OpenCL。OpenCL不支持24位RGB图像,因此我需要将数据从RGB扩展到RGBA。我使用的PNG都是24位的,因此可以避免头痛。我曾尝试使用png_set_filler和png_set_add_alpha,我认为它们大致相同来解决问题,但它们都会导致此错误:libpngerror:sequentialrowoverflow这里是完整的函数:intLoadPNG24(unsignedchar**pixelBuffer,constchar*filename,unsignedint*width,unsignedint*height){png_byt

c++ - make_signed<unsigned long>::type 是 int?

我使用的是VisualStudio2010,下面的代码让我有些困惑:#includeautox=std::make_signed::type();x将是int类型,但我预计会很长。我知道VS10中的int和long都是4字节整数。但是即使一个signedlong装进一个int,int对我来说也不是unsignedlong对应的signedinteger类型。所以我的问题是:这是错误/技术错误还是标准规范允许这种结果? 最佳答案 C++1120.9.7.3[meta.trans.sign]描述了make_signed:IfTnames

【Copilot】Sign in failed. Reason: ... read ECONNRESET, request id: 6, error code: -32603(IDEA)

问题描述当尝试在IntelliJIDEA中登录GitHubCopilot插件时,会出现以下报错信息:Signinfailed.Reason:RequestsignInInitiatefailedwithmessage:readECONNRESET,requestid:6,errorcode:-32603原因分析这个问题通常是由于网络环境问题引起的。可能是网络连接不稳定或者存在某些限制导致登录失败。解决方案断开计算机网络:尝试断开当前网络连接,包括WiFi和有线连接。连接手机热点:尝试使用手机热点作为网络连接,有时候移动网络连接可能更加稳定。切换到中国电信流量数据:如果可能的话,尝试连接中国电信

C++ signed 和 unsigned int 与 long long 速度

今天,我注意到几个简单的按位和算术运算的速度在int之间有显着差异。,unsigned,longlong和unsignedlonglong在我的64位电脑上。特别是,对于unsigned,以下循环的速度大约是其两倍至于longlong,这是我没想到的。intk=15;intN=30;intmask=(1(完整代码here)以下是计时(以秒为单位)(对于g++-O、-O2和-O3):1.834207723(int)3.054731598(longlong)1.584846237(unsigned)2.201142018(unsignedlonglong)这些时间非常一致(即1%的差值)。

c++ - std::is_signed 不适用于强类型枚举:int

谁能解释一下,为什么#include#includeusingnamespacestd;enumE:signedint{a=-1,b=1,};intmain(){std::cout()std::is_signed不做,锡上写的是什么?谢谢... 最佳答案 如果我们查看is_signed的文档它说:IfTisasignedarithmetictype,providesthememberconstantvalueequaltrue.Foranyothertype,valueisfalse.并且枚举不是算术类型,因此结果应该为假。来自C+

c++ - "signed char"和 "unsigned char"能否始终相互转换而不丢失数据?

在C++中,我们可以使用signedchar和unsignedchar,它们的大小相同但值的范围不同。在下面的代码中:signedcharsignedChar=-10;unsignedcharunsignedChar=static_cast(signedChar);signedChar=static_cast(unsignedChar);无论其原始值是多少,signedchar都会保留其值吗? 最佳答案 不,没有这样的保证。从signedchar到unsignedchar的转换是明确定义的,就像C++(和C)中的所有有符号到无符号整

c++ - std::is_signed<T> 和 std::numeric_limits<T>::is_signed 之间的区别?

两者都是std::is_signed和std::numeric_limits::is_signed应该给出关于T的签名的答案.为什么现在有两个符号指示符(即自C++11起)? 最佳答案 我敢猜测唯一的区别是如果std::numeric_limits专门用于用户定义的类型。这样的用户定义类型当然可以为is_signed提供自己的值。.但要求std::is_signed::value在这种类型上将始终返回false除非std::is_signed已独立特化。似乎std::is_signed的条件代表是is_arithmetic::val

c++ - gcc "overflow in expression"而等效等效表达式工作正常

这是我的代码#includestaticconstunsignedlonglongintxx=(36*36*36*36)*(36*36*36*36);staticconstunsignedlonglonginty=36*36*36*36;staticconstunsignedlonglongintyy=y*y;intmain(){std::cout这是编译输出#g++-std=c++11test.cpp-otesttest.cpp:2:62:warning:integeroverflowinexpression[-Woverflow]staticconstunsignedlonglon

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景我有一个带有Poof-Crash[1]的应用程序。我相当确定这是由于堆栈损坏造成的。应用程序是多线程的。我正在使用“启用C++异常:是的,带有SEH异常(/EHa)”进行编译。我编写了一个SE翻译器函数并用它调用了_set_se_translator()。我已经为set_terminate()和set_unexpected()编写了函数并进行了设置。为了获得StackOverflow,我必须在高负载下以Release模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不足以达到查看问题所需的运行时间。我可以通过在执行其中一个函数时添加无限递归来模拟该问题,从而测试是否捕