草庐IT

visualize-gradient-boosting-decis

全部标签

c++ - 如何使用 boost::latch?

我试图在我的程序中使用boost::latch来阻止等待,直到所有线程完成或超时。我的代码如下。ctpl是从https://github.com/vit-vit/CTPL采用的线程池库.#include#include#include#includeusingnamespacestd;intmain(intargc,char**argv){ctpl::thread_poolouter_tp(100);ctpl::thread_poolinner_tp(5,5000);autoout_func=[&inner_tp](intouter_id,intouter_invoke_idx){in

c++ - Boost 1_65_1 不使用 OpenSSL 1.1.0g "undefined reference"编译,但使用 "nm"找到

我正在尝试让SSL与boostASIO一起工作。我在Windows上使用MingW6.3。我用MingW构建了OpenSSL1.1、1.0和0.8,当我尝试将它们链接到项目时,我总是会遇到不同的错误(取决于缺少什么)。现在我正在尝试使OpenSSL1.1.0g工作,但即使我使用CMAKE手动提供库的路径,我也会遇到这些错误:如果我使用OpenSSL1.1.0g构建我的项目,这是错误:"C:\ProgramFiles\JetBrains\CLion2017.2.3\bin\cmake\bin\cmake.exe"--buildC:\Users\myuser\Documents\Mages

c++ - 具有 Boost 格式的 int 特征向量的格式化 cout

我想使用boost::format计算int的特征向量,使数字右对齐。到目前为止,我有以下代码intmain(){vectorfoo;Vector3ibar;bar输出是-1-10000但我希望有以下输出-1-10000如果我修改for中的格式和代码,我可以达到想要的结果boost::formatheader2("%2d%2d%2d");for(inti=0;i但是,有人能告诉我是否有更有效的方法使用boost::format来做到这一点? 最佳答案 您可以使用解决方法:boost::formatheader("%+3d");//A

c++ - 尝试在 Visual Studio 201 7's debugger: "中的寄存器上设置 watch 读取寄存器值时出错”

我目前正在处理x64AssemblyTutorial在YouTube上。我现在所做的只是一些基本的事情,比如在ASSEMBLY中使用C++函数,并使用mov指令将值移动到寄存器中。这是C++代码:#includeusingnamespacestd;extern"C"voidSomeFunction();intmain(){SomeFunction();//Justputtingthisheretostoptheprogramfromclosingimmediatelyafteropeningcin.get();return0;}这是ASSEMBLY代码:.codeSomeFunctio

c++ - 为什么按值传递 string_view?为什么 Visual Studio 不能对此进行优化?

根据我的直觉,我假设新的string_view需要通过引用传递,因为这样效率更高(只传递指针而不是完整的类)。然而,一些消息来源表明最好按值传递它,避免“别名”问题。C++viewtypes:passbyconst&orbyvalue?https://abseil.io/tips/1在尝试几种替代方案时,我证实了我的直觉,如果该函数只是转发string_view(所有源均使用/Ox编译),那么通过引用传递会更快比如这段代码externautootherMethodByReference(conststd::string_view&input)->void;autothisMethodB

c++ - 在 boost 二进制文件上使用显式位置编译 boost 标志

我正在编译一个需要boost::filesystem的项目。我在编译步骤中包含了以下标志:g++-Wall-ggdb-Werror-std=c++11-lboost_system-lboost_filesystem-I/custom/path/to/boost_1_67_0-obuild/mainbuild/cp.obuild/walk.obuild/diff.obuild/main.o我得到一个错误:build/cp.o:Infunction`boost::filesystem::relative(boost::filesystem::pathconst&,boost::filesy

c++ - 如何在 Visual Studio 中组织 C++ 大型项目

我想将我的源代码分成文件夹,以便通过将文件分组到目录中来更好地组织。通常有很多.h和.cpp文件,我通常会把文件夹分开。我一直使用netbeans,但最近我决定测试VisualStudio。开始编写代码时(小事,遵循在SDL中创建游戏的教程),我开始在文件夹中组织源代码。在VisualStudio中,当我使用C++时,我看到了添加过滤器、组织文件结构的选项,但我没有看到添加文件夹的选项。我可以在视觉上看起来像是文件夹结构的地方组织代码,但是当我去检查文件时,发现文件一团糟,它们都混杂在程序的根目录下。菜单选项只允许我添加过滤器:显然它是有条理的,但只是在视觉上,所有代码都保留在同一个地

c++ - 是否有将 EBNF 翻译成 boost::spirit 的翻译工具?

翻译器也可以在boost::spirit中。我在互联网上找不到任何东西。也许我应该做一个? 最佳答案 从spiritintroduction开始:ExpressiontemplatesallowustoapproximatethesyntaxofExtendedBackus-NormalForm(EBNF)completelyinC++.因此您几乎可以编写纯EBNF,不需要翻译器。我对spirit不是很熟悉,不知道语法到底有什么不同,但是如果spiritC++EBNF和realEBNF的差异很小,那么一个简单的sed脚本可能就足够了

c++ - 带括号的 Visual Studio (C++) IntelliSense

如果我有一个vectortoto,当我写toto.s时,IntelliSense会给我toto.size但我想要toto.size()。如何强制IntelliSense给我括号? 最佳答案 我认为使用visualstudio的intellisense是不可能的。然而,看看这个非常好的第三方工具,它可以做到这一点:VisualAssist 关于c++-带括号的VisualStudio(C++)IntelliSense,我们在StackOverflow上找到一个类似的问题:

c++ - 如何将 Boost 线程池从 fifo 转换为优先级?

我正在开发一个Boost线程池。我有这样的结构:classSimThreadPool{staticSimThreadPool*getInstance();boost::threadpool::prio_pool&getThreadPool(){returnmThreadPool;}simTerrain::SimThreadPool::SimThreadPool():mThreadPool(boost::threadpool::fifo_pool(1)){}boost::threadpool::prio_poolmThreadPool;}当我需要一个线程时,我这样调用它:SimThrea