草庐IT

default-compile

全部标签

c++ - 浮点提升 : stroustrup vs compiler - who is right?

在Stroustrup的新书“C++编程语言-第四版”的第10.5.1节中,他说,在执行算术运算之前,整数提升用于从较短的整数类型创建整数,类似地,浮点-点提升用于从float中创建double。我使用以下代码确认了第一个声明:#include#includeintmain(){shorta;shortb;std::cout用vc++输出“int”,用gcc输出“i”。但是用float而不是短裤测试它,输出仍然是“float”或“f”:#include#includeintmain(){floata;floatb;std::cout根据Stroustrup的说法,浮点提升规则没有异常(

c++ - 我可以使用 Visual Studio 201 0's C++ compiler with Visual Studio 2008' s C++ 运行时库吗?

我有一个应用程序需要在Windows2000上运行。我也想使用VisualStudio2010(主要是因为auto关键字的定义发生了变化)。但是,我有点束手无策,因为我需要该应用程序能够在较旧的操作系统上运行,即:Windows2000WindowsXPRTMWindowsXPSP1VisualStudio2010的运行时库依赖于WindowsXPSP2中引入的EncodePointer/DecodePointerAPI。如果可以使用备用运行时库,是否会破坏依赖于VS2010中添加的C++0x功能的代码,例如std::regex? 最佳答案

c++ - 可选功能参数 : Use default arguments (NULL) or overload the function?

我有一个处理给定vector的函数,但如果没有给出,也可以自己创建这样的vector。对于这种情况,我看到了两种设计选择,其中函数参数是可选的:将其设为指针,默认设为NULL:voidfoo(inti,std::vector*optional=NULL){if(optional==NULL){optional=newstd::vector();//fillvectorwithdata}//processvector}或者有两个具有重载名称的函数,其中一个省略了参数:voidfoo(inti){std::vectorvec;//fillvecwithdatafoo(i,vec);}voi

c++ - C/C++ : How to use the do-while(0); construct without compiler warnings like C4127?

我经常在我的#defines中使用do-while(0)结构,原因描述为inthisanswer。.此外,我正在尝试使用编译器的尽可能高的警告级别来捕捉更多潜在问题,并使我的代码更加健壮和跨平台。所以我通常将-Wall与gcc和/Wall与MSVC一起使用。不幸的是,MSVC提示do-while(0)构造:foo.c(36):warningC4127:conditionalexpressionisconstant我应该怎么处理这个警告?只是对所有文件全局禁用它?对我来说这似乎不是一个好主意。 最佳答案 总结:在这种特殊情况下,此警告

c++ - 错误 : variable "cannot be implicitly captured because no default capture mode has been specified"

我正在尝试关注thisexample使用带有remove_if的lambda。这是我的尝试:intflagId=_ChildToRemove->getId();autonew_end=std::remove_if(m_FinalFlagsVec.begin(),m_FinalFlagsVec.end(),[](Flag&device){returndevice.getId()==flagId;});m_FinalFlagsVec.erase(new_end,m_FinalFlagsVec.end());但是编译失败:errorC3493:'flagId'cannotbeimplicit

c++ - 未在 Windows 8.1 上构建的 Node 包 - 缺少 Microsoft.Cpp.Default.props

NPM包未在Windows8.1上构建-失败并出现以下错误,errorMSB4019:Theimportedproject"C:\Microsoft.Cpp.Default.props"wasnotfound.Confirmthatthepathinthedeclarationiscorrect,andthatthefileexistsondisk.我已经尝试了以下,设置环境变量VCTargetsPath至C:\ProgramFiles(x86)\MSBuild\12.0\(错误会相应改变,但没有Microsoft.Cpp.Default.props与2012构建工具)。根据thisa

node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?

我有一个通用的方法来更新MongoDB中任何集合的文档吗?以下代码在文件名Deleter.js中module.exports.MongooseDelete=function(schemaObj,ModelObject);{varModelObj=newmongoose.Model("collectionName",schemaObj);ModelObj.remove(ModelObject);}并在我的主文件app.js中调用如下:varModObj=mongoose.model("schemaName",schemasObj);varModel_instance=newModObj(

node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?

我有一个通用的方法来更新MongoDB中任何集合的文档吗?以下代码在文件名Deleter.js中module.exports.MongooseDelete=function(schemaObj,ModelObject);{varModelObj=newmongoose.Model("collectionName",schemaObj);ModelObj.remove(ModelObject);}并在我的主文件app.js中调用如下:varModObj=mongoose.model("schemaName",schemasObj);varModel_instance=newModObj(

javascript - 为什么 `Export Default Const`无效?

我看到以下内容很好:constTab=connect(mapState,mapDispatch)(Tabs);exportdefaultTab;但是,这是不正确的:exportdefaultconstTab=connect(mapState,mapDispatch)(Tabs);但这很好:exportdefaultTab=connect(mapState,mapDispatch)(Tabs);能否解释一下为什么const对exportdefault无效?这是不必要的添加吗?任何声明为exportdefault的东西都被假定为const之类的? 最佳答案

compilation - 编译时按架构排除 go 源文件

我正在为Windows编写一个包含多个包的Go程序。其中一个包是使用CGo调用在一些.h和.c文件中定义的一些函数。这些.c文件依赖于windows.h。由于在Windows平台上进行开发非常乏味,我想制作一个模型,然后在Linux上开发此文件中的功能。但是当我尝试编译时,我得到:fatalerror:windows.h:Nosuchfileordirectory由于go工具试图编译我的Windows相关文件。有没有办法解决这个问题?我知道把像#ifdef..importx#endif不是最佳实践,但在这种情况下,我需要一些东西来允许只编译“Linux”文件。