草庐IT

c++ - NDEBUG 和 _DEBUG 在 Visual Studio 2015 中定义在哪里?

我可以转到默认VisualStudio2010项目的设置,并查看在“配置属性”>>“C/C++”>>中定义的NDEBUG或_DEBUG“预处理器”的“预处理器定义”:如果我转到默认VisualStudio2015项目的设置,“预处理器定义”是空的!我什至没有在VisualStudio2015.vcxproj中看到NDEBUG或_DEBUG。我知道它的定义是正确的,因为assert(false)只在调试配置中触发。Microsoft将这些定义隐藏在VisualStudio2015的什么地方?我可以修改它们吗,还是已经被我拿走了?编辑:Niall'sanswer是正确的。我不明白的是,如果

c++ - Visual Studio 2015 不会抑制错误 C4996

VisualStudio2015CommunityEdition在debug中编译时出现以下错误,但在release中编译时不会出现以下错误:std::copy::_Unchecked_iterators::_Deprecate':Callto'std::copy'withparametersthatmaybeunsafe-thiscallreliesonthecallertocheckthatthepassedvaluesarecorrect.Todisablethiswarning,use-D_SCL_SECURE_NO_WARNINGS.Seedocumentationonhow

c++ - Visual Studio 2015 代码分析 C6386 缓冲区溢出警告

我已经阅读了很多关于VisualStudioCodeAnalysis警告C6386的信息,但我无法用我的代码找出这个特定问题。我已将其简化为以下小程序:unsignedintnNumItems=0;intmain(){int*nWords=nullptr;unsignedintnTotal;nTotal=3+2*nNumItems;nWords=newint[nTotal];nWords[0]=1;nWords[1]=2;//thisisline18,warningC6386delete[]nWords;return0;}Analyze->RunCodeAnalysis->OnSolu

c++ - 异常 - VC++2015 CTP Ultimate 中的不正确行为

我有一个程序:#includeusingnamespacestd;classTest{public:voidfunc(){cout我的预期是该程序将从main终止,但在VC++2015上maincout正在打印。这违反了我的理解,所以我用gcc编译了它在那里工作正常。这是VC++2015中的错误还是像这样的程序终止行为是未指定/UB行为?它是否应该执行cout?IDE:VS2015CTPUltimatePreview(30天)标志:/GS/analyze-/W3/Zc:wchar_t/ZI/Gm/Od/sdl/Fd"Debug\vc140.pdb"/fp:precise/D"_MBCS

c++ - Visual C++ 2015 在使用 decltype(auto) 时给出 C4552 警告

我想我在VisualC++2015中遇到了一个错误,但我想确定一下。考虑这个片段:templatedecltype(auto)f(Tparam){returnparam+1;}intmain(){autoi=f(10);return0;}VisualC++2015在return语句中给出了这个警告:warningC4552:'+':operatorhasnoeffect;expectedoperatorwithside-effect尽管它似乎对生成的代码没有任何影响。这是编译器错误吗? 最佳答案 这似乎是一个错误。它在这里有一个开放

c++ - Visual Studio 2015 更新 1,clang 错误

在我的项目(VisualStudio2015Update1)中尝试将新的clang与VisualCodegen结合使用时,出现以下错误:clang.exe:error:cannotspecify-owhengeneratingmultipleoutputfiles这只是一个新创建的项目,带有自动生成的main。我真的不知道该怎么办。感谢任何帮助。 最佳答案 不是很清楚您在做什么,但很明显您没有在跨平台节点中使用Clang项目模板之一。我可以通过使用Win32>Win32项目模板并将项目的平台工具集选择更改为“Clang3.7”来重现

c++ - 附加控制台 I/O 的 Visual Studio 2015 问题

我最近将一个旧项目的解决方案升级为使用visualstudio2015。该应用程序运行一个opengl应用程序。应用程序为输出分配一个单独的控制台。我使用控制台从我的opengl应用程序中输出相关的调试信息。我已经完全升级了我的项目并且它工作正常。我的问题是,在将我的项目升级为使用VisualStudio2013(v120)工具集的VisualStudio2015(v140)工具集时,当我使用任何控制台输出函数(stdio.h或iostream)时,控制台不显示任何信息。这使调试变得更加痛苦。需要说明的是,我可以将我的项目换回使用VisualStudio2013(v120)工具集,当我

c++ - MSVS 2015 表达错误 C4146 - 应用于无符号类型的一元减号运算符

有没有办法在MicrosoftVisualStudio2015-ExpressEdition中禁用错误​​C4146?我尝试将“将警告视为错误”选项设置为否,但MSVC仍将C4146视为错误。有什么解决办法吗? 最佳答案 对于新的MicrosoftVisualStudioCommunityEdition项目,“SDL检查”默认设置为“是(/sdl)”。这会将某些“安全相关”警告变成错误。将参数设置为“No(/sdl-)”,将它们转回警告。请参阅有关“SDLCheck”的Microsoft文档,当前为here.编辑:这个问题已经在评论

JavaScript函数未在Visual Studio 2015社区版中的OnClick按钮中调用

我正在学习JavaScript和CSS,并在VisualStudio2015CommunityEdition中进行了测试项目。我遇到的问题是,使用VisualStudio2015CommunityEdition时,功能ChangEtiTlecsSstyle并未调用。在在线编辑中https://js.do/在GoogleChrome浏览器中,功能调用正常工作。我的代码:index.htmJavaScriptandHTMLfunctionchangeTitleCSSStyle(){alert("Aanroep");vartitle=document.querySelector("#mainTitl

c++ - 在 VC2015 中连接不匹配的字符串 WORKS - 如何?

当我们有这些之一时:autocity1="New"L"Delhi";autocity2=L"New""York";任何VS2015之前的编译器都会引发错误:errorC2308:concatenatingmismatchedstrings但是使用VC2015编译器,它编译得很好并且结果类型(auto推导)是一个宽字符字符串。我的问题是:何时以及如何做到这一点-任何标准规范? 最佳答案 在C++03中,此行为是未定义的。ISO14882-2003:2.13.4.3指出Intranslationphase6(2.1),adjacentn