libboost_filesystem-vc
全部标签 我得到了一个boost::filesystem::path。有没有快速获取路径指向的目录下文件个数的方法? 最佳答案 这是标准C++中的一行代码:#include#include#includeintmain(){usingnamespaceboost::filesystem;usingnamespaceboost::lambda;paththe_path("/home/myhome");intcnt=std::count_if(directory_iterator(the_path),directory_iterator(),st
我正在尝试在我正在编写的一些代码中使用boost/filesystem库。我似乎很难让它编译。我正在运行DebianWheezy,并且有boost版本1.49(这是使用apt-get安装时出现的版本)。我正在尝试编译文档中提供的示例#include#includeusingnamespaceboost::filesystem;intmain(intargc,char*argv[]){if(argc我使用以下命令:g++temp.cc-otemp/usr/lib/libboost_filesystem.a我收到一些错误,例如:/usr/lib/libboost_filesystem.a(
我看了(大部分)HerbSutter'stheatmoicweaponsvideo,我想用示例中的循环测试“条件锁”。显然,虽然(如果我理解正确的话)C++11标准说下面的例子应该正常工作并且顺序一致,但事实并非如此。在您继续阅读之前,我的问题是:这是正确的吗?编译器坏了吗?我的代码是否损坏-我是否错过了这里的竞争条件?我该如何绕过这个?我在3个不同版本的VisualC++上进行了尝试:VC10专业版、VC11专业版和VC12Express(==VisualStudio2013DesktopExpress)。下面是我在VisualStudio2013中使用的代码。对于其他版本,我使用了
简单的多线程c++11程序,其中所有线程在紧密循环中锁定相同的互斥量。当它使用8个线程时(作为逻辑cpu的数量)可以达到500万锁/秒但是只添加一个额外的线程-性能会下降到200,000/秒!编辑:在g++4.8.2(ubuntux64)下:即使有100个线程,性能也不会下降!(性能是两倍多,但那是另一回事了)-所以这似乎确实是一个特定于VC++互斥实现的问题我用下面的代码(Windows7x64)复制了它:#include#include#include#include#include#include#includeusingnamespacestd::chrono;voidthre
我正在使用Boost,但我无法在安装目录或Web中找到有关文件系统库的完整(或良好)文档。我发现的“-ls”示例非常有用,但还不够。提前致谢:) 最佳答案 这是一个例子:#include#include#includeusingnamespacestd;intmain(){stringfilename="hello.txt";stringextension=boost::filesystem::extension(filename);cout输出为“.txt”提醒:使用'-lboost_system-lboost_filesyste
我非常困惑为什么我会突然收到这个奇怪的错误:Time.h是一个非常简单的类,它在类描述的末尾有一个分号,所以我很确定我的代码在这里是正确的。然后我得到了同样的错误:MicrosoftVisualStudio10.0\VC\include\memory..任何想法!?!?谢谢!编译器输出1>ClCompile:1>Stop.cpp1>c:\projectnextbus\Time.h(17):errorC2143:syntaxerror:missing';'before'using'1>c:\projectnextbus\Time.h(17):errorC4430:missingtypes
有什么可以用VC++(原生)完成而VC#无法完成的?据我所知,唯一值得使用VC++native的是当你需要自己管理内存而不是CLR垃圾收集器时,我还没有看到这样做的目的(但那是另一个问题稍后询问)。 最佳答案 跨平台开发。是的,Mono存在,并且Java的有点更可预测,使其在更多平台上的功能完全相同,您可以找到适用于几乎任何平台的C/C++编译器,而C#无法做到这一点.还链接到第3方库,虽然我确信有一种方法可以在C#中利用它们,但您将能够在C++中利用它们而无需互操作(编码(marshal)处理等)。编辑:最后一件事:可靠的内存管理
我现在尝试将近一周的时间在Windows和VC++下构建一个可靠的boost+ICU库作为x86系统下的STATIC库(所以我不需要任何运行时dll)。我主要需要支持Unicode和boost.locale.icu的boost正则表达式。无法在整个网络上找到任何可靠的解决方案(不是在boost站点或ICU上)来执行此操作。尝试使用VC++、Cygwin+VC++进行构建,但到目前为止没有成功。有经验的帮助吗?或者,更糟糕的情况是,任何预构建的ICU静态+boost静态包?在我构建ICUstatic之后,在Cygwin下配置:bashrunConfigureICU--enable-deb
在用基于范围的for循环替换我的许多“旧”for循环之前,我使用visualstudio2013进行了一些测试:std::vectornumbers;for(inti=0;i查看反汇编,循环的标准都是矢量化的:00BFE9B0vpadddxmm1,xmm1,xmmwordptr[eax]00BFE9B4addecx,400BFE9B7addeax,10h00BFE9BAcmpecx,edx00BFE9BCjnemain+140h(0BFE9B0h)但是基于范围的for循环不是:00BFEAC6addesi,dwordptr[eax]00BFEAC8leaeax,[eax+4]00BFE
我正在使用以下编译器:MicrosoftVisualC++2010以下代码在编译时使编译器崩溃:templatevoidcrasher(T_a,decltype(*a)*dummy=0){}intmain(){crasher(0);return0;}decltype(*a)*用于执行T_成为类似指针的类型-例如char*,int*,和shared_ptr.为什么会崩溃?这是已知错误吗? 最佳答案 假设你的目标是decltype(*a)*usedtoenforceT_tobeapointer-liketype-suchaschar*,