草庐IT

c++ - C++11 theads 的最基本并行化失败

我尝试通过g++4.7使用C++11theading库。首先我有一个问题:是否预计下一个版本不需要手动链接pthread库?所以我的程序是:#include#include#includevoidf(inti){std::coutt;for(inti=0;i我编译:g++-4.7-Wall-Wextra-Winline-std=c++0x-pthread-O3helloworld.cpp-ohelloworld它返回:Helloworldfrom:Helloworldfrom:Helloworldfrom:322purevirtualmethodcalledterminatecalle

c++ - 是否有任何静态分析工具可以检查 Rule of 3(或 Rule of 5 C++11)

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8个月前。Improvethisquestion我目前正在开发一个建立在沙子基础上的代码库。据称经过测试的库中有许多类违反了“3法则”。大多数声明了一个非平凡的析构函数,但缺少复制构造函数或赋值运算符。是否有任何编译器标志(gcc)或静态分析工具会在类违反规则3时发出警告?目前我们将Coverity与GCC4.4版结合使用。

OpenCV+Ubuntu+QT实现人脸检测/识别(考勤管理)

1.开发环境 Ubuntu18+OpenCV3+qt52.环境配置1.虚拟机安装Ubuntu2.安装qt5下载完成后在下载目录打开终端,赋予可执行权限,再执行即可安装qtsudochmod+xqt-opensource-linux-x64-5.12.8.run3.安装OpenCV库可参考文章4.在QT中引用OpenCV库若按照上述方法安装好opencv,创建测试项目,在pro文件中加入:INCLUDEPATH+=/usr/local/include//opencv头文件安装路径LIBS+=/usr/local/lib/libopencv_*//opencv库文件路径测试:#include#i

C++11 lambda 不明确

为什么编译器不能选择最明显的重载:#include#includestaticvoidfoo(conststd::function&f){std::cerr&f){std::cerr你会期望输出:usingbooloverloadtrueusingintoverload1但是,编译器无法推断出正确的重载:gcc-4.8:main.cpp:Infunction'intmain()':main.cpp:17:6:error:callofoverloaded'foo(main()::__lambda0)'isambiguous});^main.cpp:17:6:note:candidates

c++ - 如何使用 Qt 在 Windows 上检查网络接口(interface)类型是以太网还是无线?

我需要找出PC上的网络接口(interface)类型是有线还是无线。我尝试使用提供适配器名称的QNetworkInterface类。但是Windows上的用户可以更改适配器名称。在Mac上,我可以检查接口(interface)类型为eth0或eth1,因为它对所有用户都是相同的。我也试过QNetworkConfiguration::bearerType,但我得到的配置是以太网,即用于有线和无线配置的BearerEthernet。有没有其他方法可以在Qt中或使用特定于Windows平台的API找出网络接口(interface)类型? 最佳答案

c++ - 如何有效地使用 C++11 随机生成器?

我正在执行计算实验,这需要可重现。因此每个实验都使用自己的随机数生成器并记住其种子:classExperiment{public:voidoperator()();private:unsignedseed_;std::mt19937engine_;};问题是引擎需要传递给最基本的功能。假设在调用堆栈下方10层的某处有一个简单的函数,它需要一个引擎来生成一个介于0和1之间的随机数。然后该引擎需要传递给这10个调用中的每一个,使代码成为乱七八糟。我考虑并拒绝了这两种方法:1.globalengine:我会有一个全局引擎,所有基本函数都会调用这个引擎。但是,如果我想在不同的线程中运行多个实验

c++ - 为 Beaglebone Black 编译 Qt

我想从源代码为BeagleboneBlack编译Qt。我有以下内容:交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.06_linuxqt-everywhere-opensource-src-5.3.1。我的主机操作系统是ScientificLinux6.332位。我的问题是我不知道需要将哪些参数传递给./confiure工具。我有以下线索:-xplatform=qtbase/mkspecs/linux-arm-gnueabi-g++-device=qtbase/mkspecs/devices/linux-beagleboard-g++-dev

c++ - 如何将 GCC 的 printf 格式属性与 C++11 可变参数模板一起使用?

我有一个C++类,它是日志系统的前端。它的日志记录功能是使用C++11的可变参数模板实现的:templatevoidFrontend::log(constchar*fmt,Args&&...args){backend->true_log(fmt,std::forward(args)...);}每个日志记录后端都实现了自己的true_log版本,除其他外,它使用转发的参数调用vsnprintf。例如:voidBackend::true_log(constchar*fmt,...){//otherstuff..va_listap;va_start(ap,fmt);vsnprintf(buf

c++ - 菜单栏仅在使用 Qt5 在 MacOS 上切换应用程序/桌面后显示

使用以下示例代码,启动应用程序时,使用Qt5.3.2的MacOS10.9.5上的native菜单不会显示。以前的菜单仍然可见,但无法使用此工具栏执行任何操作。如果我切换到另一个应用程序或另一个桌面,该应用程序的菜单将按预期变得可见和可用。我的问题与以下问题几乎相同,但答案不适用于我的代码:Qtmenubarnotshowing这里还有另一个非常相似的问题,我已经根据建议的答案修改了我的代码,但它也不起作用:MenuBarNotShowingforSimpleQMainWindowCode,QtCreatorMacOS#include#includeclassMainWindow:pub

c++ - 如何识别导致Qt 警告信息的行?

我正在使用Qt,有时它会在调试窗口中给出以[E]开头的警告消息。大多数时候,[E]警告消息还会提供有关发出此警告的cpp文件的行信息的信息。就像这个:atkernel\qmetatype.cpp:597TypeconversionalreadyregisteredfromtypeQPairtotypeQtMetaTypePrivate::QPairVariantInterfaceImpl不过,通常这些cpp文件都是Qt自带的文件,在windows中一般都是dll。问题是,我从来没有在自己的代码中注册过这样的类型转换。而且这个警告似乎与多线程有关,因为它不会每次都出现。是否有任何方法、功