草庐IT

libboost_filesystem-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++:比较 boost::filesystem 中的路径时如何忽略第一个目录路径?

我正在尝试比较两个目录并找出里面有哪些不同的文件。所以我使用boost::filesystem::recursive_directory_iterator将每个目录的所有内容添加到相应的vector中。然后我按字母顺序对每个vector进行排序并开始比较路径。问题是它包含“基本”路径,我不希望这样,例如:Version1/Assets/info.txtVersion2/Assets/info.txt那些路径比较不同,但我希望它们比较相同。澄清一下,我什至还没有检查二进制文件,到目前为止只是路径名。我会这样比较它们:/Assets/信息.txt我已经浏览了几个小时的boost文档,我相信

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++ - VC++ 注释、文档和 IntelliSense

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

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=

c# - 我们如何在 VC++ 中使用 .NET dll?

请建议我在VC++项目中使用.NETdll的最佳方法。 最佳答案 使其可见。参见linktext 关于c#-我们如何在VC++中使用.NETdll?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1802929/

c++ - 为什么 VC++ 2010 允许编译?

std::vectorvci;vci.push_back(1);vci[0]=2;如果元素类型是constint,赋值语句不应该赋值给constint&吗?这不会用LLVM3.0编译。为什么VC++允许它? 最佳答案 虽然它是未定义的行为并且基本上任何都可能发生,包括您所看到的,但我已经追踪到这似乎是库与标准不兼容的地方。特别是VS2010库中定义的标准分配器不符合标准。标准规定std::vector::value_type是Allocator::value_type的类型定义.现在默认分配器(如果没有提供)是std::alloca