草庐IT

libboost_unit_test_framework-vc

全部标签

c++ - 为什么成员函数尝试 block 处理程序中的 lambda(捕获 'this')不能访问 VC++ 2013 中的私有(private)数据成员?

与thisquestionaboutstaticinitializers不同但可能相关.前两个函数编译良好,最后一个函数在vc++中不编译,但在clang和gcc中编译:classA{protected:std::stringprotected_member="yay";public:voidwithNormalBlock();voidwithFunctionBlock();voidnoLambda();};voidA::withNormalBlock(){try{throwstd::exception();}catch(...){[this](){std::coutinclang(好

c++ - Visual Studio 2010 上的 VC++ : Release builds using debug heap

我正在对一个慢速C++应用程序进行基准测试/优化,在拍摄一些堆栈快照时,我发现我的应用程序的发布版本正在使用调试堆,因为找到的一些堆栈跟踪表明:ntdll.dll!string"Enablingheapdebugoptions\n"()+0x11056bytes这是一个在Windows7上运行的64位应用程序。我在完全相同的在线环境中看到两三个关于此问题的其他投诉,但没有任何回应。有没有人知道为什么Windows或VisualStudio会使用调试堆来发布构建C++项目? 最佳答案 Thedebugheapisusedwhenapr

c++ - VC++ 11 中的 std::thread 类导致随机崩溃。任何解决方法?

我在VisualStudio11DeveloperPreview中遇到了一个错误,至少我认为这是一个错误并报告了它,但我很想知道是否有人知道解决方法。当我使用std::thread类创建多个线程时,它会导致应用程序崩溃。有时它会抛出异常,有时会导致访问冲突,有时它会起作用。重现错误的代码如下所示:#include#include#include#includeint_tmain(intargc,_TCHAR*argv[]){std::vectorthreads;for(inti=0;ijoin();deletethreads[i];}return0;}使用静态或动态CRT库并不重要(它

c++ - 从单元测试 .EXE 项目中引用来自 VC++ .EXE 项目的类

我有一个旧的遗留C++应用程序,我正在尝试为其编写一些单元测试。我在我的解决方案中创建了第二个项目,该项目构建为单元测试可执行文件(使用googletest)。测试项目引用主项目的头文件。在我尝试使用主项目中的类之一之前,测试项目构建良好。#include"stdafx.h"#include"JsContext.h"#include"gtest/gtest.h"TEST(JsContextTests,CreateJsContext){JsContextcontext;//linkingfailsassoonasthislineisadded}产生..Error1errorLNK2001

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

在Windows7 SP 1上的.NET Framework 4.5.1在注册表中看到

我已经在Windows7SP1上安装了.NETFramework4.5.1。我可以在“控件”面板程序列表中看到,但我找不到注册表中名为“完整”的文件夹(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4.0)。只有客户端文件夹。看答案这4.0条目已过时,使用4。因此,请检查下HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Full.在这里寻找Release值得看的值版本+拼绘.

c++ - 定义 BOOST_TEST_DYN_LINK 会导致应用程序在 Visual Studio 中崩溃

在boost单元测试文档中,它明确指出您需要定义BOOST_TEST_DYN_LINK为了与boost单元测试库链接。我正在使用这个基本示例:#defineBOOST_TEST_DYN_LINK#defineBOOST_TEST_MODULEtest_module1//Thisheaderisforthedynamiclibrary,nottheheaderonlyone#includeBOOST_AUTO_TEST_CASE(test1){BOOST_CHECK(true);}我已将boost添加到我的包含/库路径并且代码编译正常,但是当我使用VisualStudio编译boost单

c++ - VC++ 注释、文档和 IntelliSense

在C#中,我这样评论方法://////Doesabsolutelynothing//////Firstuselessparameter///Seconduselessparameter///zeropublicintFoo(inta,intb){return0;}这提供了非常好的IntelliSense提示窗口:如果有的话,什么是VisualC++中的等价物或(甚至更好)可以在XCode或Eclipse等其他IDE中工作的解决方案?更新我找到了thissimilarquestion,但是@edtheprogrammerguy的回答有很好的引用,所以我会把问题留在这里。另外,SO不会让我

c++ - Gtest : test compiling error

我正在尝试测试我用googletest编写的电机控制库,但我没有编译测试代码。测试位于名为test.cpp的文件中,如下所示:#include#include"../motor.hpp"TEST(constructorTest,contructorDefault){}我将测试主函数放在另一个名为main.cpp的文件中。#include#include"../motor.hpp"intmain(intargc,char*argv[]){::testing::InitGoogleTest(&argc,argv);RUN_ALL_TESTS();}为了编译,我执行了以下行:g++main.

c++ - 具有协变返回类型的方法在VC++上崩溃

使用clang或gcc(在macOS上)编译时,以下代码似乎运行良好,但使用MSVisualC++2017编译时,以下代码崩溃。foo_clone->get_identifier()。如果删除协变返回类型(所有克隆方法都返回IDO*),删除std::enable_shared_from_this或将所有继承设为虚拟,则它在VC++上确实有效。为什么它可以与clang/gcc一起使用,但不适用于VC++?#include#includeclassIDO{public:virtual~IDO()=default;virtualconstchar*get_identifier()const=