草庐IT

entry-debug-rich-signed

全部标签

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++ - 即使选择了调试构建,Qt Creator 的智能感知也会使#ifdef _DEBUG block 变灰

当我的代码中有这样的#ifdef#ifdef_DEBUGprintf("Thisisadebugbuild");#endifQtCreator将printf变灰,即使它是一个调试版本,当我运行它时“Thisisadebugbuild”被打印出来。智能感知似乎没有看到将通过命令行(即-D_DEBUG)传递给编译器的预处理器定义,而不是在头文件/源文件中定义。 最佳答案 以下内容在我的*.pro文件中运行良好:CONFIG(debug,release|debug):DEFINES+=_DEBUG切换构建类型也会切换灰色区域。不过,我使用

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++ - 使用 biicode cmake 在 Debug模式下构建 C++

由于我无法从发布版本更改为调试版本类型,我想知道我做错了什么。我正在使用UnixMakefile。在docs.biicode.com/c++/building.html中说明了如何在CMakeLists.txt中添加SET()来向cmake添加变量。我是cmake和biicode的新手,我尝试了所有:ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE=Debug)ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE:STRING=Debug)SET(CMAKE_BUILD_TYPEDebug)target_compile_options(my_prog

c++ - 为什么我肯定会输入 "procedure entry point could not be located in dll"却不能?

我有一个非常模糊的问题,但我希望有人能帮忙解决。我正在修改一个C++项目,昨天它还在工作,但今天就不行了。我很确定我没有改变任何东西,但为了完全确定我再次从SVN中检查了项目,我什至恢复到以前的系统还原点(因为这是一台工作计算机,它有时会secret安装更新等。).编译成功后,程序可以启动,但是我和它交互后,却报错:过程入口点?methodName@className@@UAEXXZ无法位于动态链接库libName.dll中。我在网上搜索过,但大多数人的问题似乎是由使用的DLL的旧版本引起的。我搜索了我的电脑,没有旧版本。如果我删除正确的版本,应用程序不会启动。如果我随后重新编译该项目

c++ - Visual C++ 查找导致 "Debug Assertion failed"的行

我正在尝试获得一个C++程序,该程序在使用gcc编译时可以正常工作,以便在VisualC++上正常工作。我的问题是我现在收到以下错误:DebugAssertionFailed!Program:C:\WINDOWS\SYSTEM32\MSVCP110D.dllFile:c:\programfiles(x86)\microsoftvisualstudio11.0\vc\include\vectorLine:1140Expression:vectorsubscriptoutofrange我真正的问题是我不知道这发生在何时何地。通过在错误窗口中按下break,我只是被带到最终发生异常的vect