草庐IT

declarative-programming

全部标签

c++ - 如何使用 Boost Program Options 提取已解析选项的序列?

我正在使用BoostGraph和ProgramOptions构建一个图形生成器。例如,有两种类型的组件C和W,每个都有1个源、1个汇和一些附加参数来指定它们之间的拓扑。我希望能够按照命令行参数的顺序将它们拼接在一起。例如:./bin/make_graph-c4,5,1-w3,3-c3,1,2应该创建一个类似如下的图表:C--W--C但是:./bin/make_graph-c4,5,1-c3,1,2-w3,3应该创建一个类似如下的图表:C--C--W使用boost::program_options,我无法确定如何提取确切的顺序,因为它将相同string_key的选项“组合”到value_

c++ - vector 值 boost::program_options 的默认值

我有一个boost::program_options选项,它成功地将所需的输入选项解析为一个vector,但我没有看到如何也给它一个默认值。示例:base.add_options()("vector_value",po::value>(&vecoption)->multitoken(),"description");可以很好地将值读入vecoptions之类的东西base.add_options()("int_value",po::value(&intoption)->default_value(1),"description");也可以正常工作,但尝试为vector参数提供一个默认值

c++ - CMake 错误 : CMake was unable to find a build program corresponding to "MinGW Makefiles"

我正在尝试使用cmake为C++构建Box2D库。当我运行cmakegui时出现错误:CMakeError:CMakewasunabletofindabuildprogramcorrespondingto"MinGWMakefiles".CMAKE_MAKE_PROGRAMisnotset.Youprobablyneedtoselectadifferentbuildtool.CMakeError:CMakewasunabletofindabuildprogramcorrespondingto"MinGWMakefiles".CMAKE_MAKE_PROGRAMisnotset.Youp

docker:Error response from daemon: driver failed programming external connectivity on endpoint mysql

在linux系统中运行docker容器中MySQL镜像中遇到了一些问题出现了如下报错:无法运行MySQL镜像,大概意思是来自守护进程的错误响应:驱动程序在端点mysql上编程外部连接失败(57f1ceb50a49feb0f5b187889af36633dff7aef9c58a29bd8a0c21d98ae5a427):启动userland代理时出错:侦听tcp40.0.0.0:3306:绑定:地址已在使用,就是端口号被占用了,所以我们需要结束这个进程。我们直接利用pkill-9MySQL命令结束掉进程,然后重新启动就可以了然后我们重新进一下容器镜像试一下,没有问题可以正常启动

c++ - 为什么 "The C++ Programming Language 3rd Edition (online)"中的 Stroustrup 定义函数 sqrt?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。ImprovethisquestionBjarneStroustrup,在他的书“TheC++ProgrammingLanguage”第2章第23页(pdf第34页)的第3版(online)中,在片段范式中定义函数sqrt.为什么他不直接使用标准库中已经包含的那个?

c++ - 错误 : expected a declaration

到目前为止,我的DecisionTree.h文件中只有namespaceDecisionTree{publicstaticdoubleEntropy(intpos,intneg);}并且VisualStudio已经突出显示了public并说Error:expectedadeclaration.我错过了什么? 最佳答案 public是一个访问说明符。访问说明符仅适用于class/struct主体,不适用于namespace。在C++中(与Java不同)它必须在class主体内跟一个冒号:。例如,classDecisionTree{//

c++ - 错误 : no '__________' member function declared in class '_______'

我认为自己是一个相当新手的c++程序员,我以前从未遇到过这个错误。我只是想为我的函数创建一个类,但我的头文件中声明的所有std::前缀函数都没有被识别//comments//comments//comments//comments//comments//comments//comments//comments//comments//comments//comments#ifndefPERSON_H#definePERSON_H#includeclassPerson{public:Person();std::stringgetName();//returnfirstnamestd::st

C++ 和 Qt : Paint Program - Rendering Transparent Lines Without Alpha Joint Overlap

我已经开始创建一个与绘图板交互的绘图程序。根据笔在数位板上的压力,我更改了正在绘制的线条的alpha值。该机制有效。细线看起来不错,看起来像一个真实的素描。但是因为我在两点之间画线(就像在Qt涂鸦教程中一样)来绘画,所以线接头之间有一个alpha重叠,并且对于粗笔画来说非常明显。这是线对线连词的效果:如您所见,线段之间存在难看的alpha混合。为了解决这个问题,我决定使用QPainterPath来渲染线条。这有两个问题:长的、连续的、粗的路径很快就会滞后于程序。由于路径是相连的,所以它作为一个路径起作用,所以对alpha值的任何更改都会影响整个路径(我不想这样做,因为我想保留混合效果)

c++ - Q_DECLARE_METATYPE 一个 boost::multi_array

我正在尝试使用Qt的信号和槽机制传递表示为boost::multi_array的多维数组。我尝试使用以下代码段声明元类型:Q_DECLARE_METATYPE(boost::multi_array)但是我得到以下编译错误(在MSVC2015上):path\to\project\metatypes.h(7):errorC2976:'boost::multi_array':toofewtemplatearguments..\..\ml_project\boost-libs\include\boost/multi_array.hpp(111):note:seedeclarationof'bo

c++ - 转发声明结构时出错 : "has a previous declaration here"

在构建我的小型C++项目时,出现以下2个错误,无法找出原因:错误:在“结构”之后使用类型定义名称“TTF_Font”。指向Foo.h中的以下代码行:structTTF_Font;。错误:“TTF_Font”在此之前有一个声明。指向以下代码行:typedefstruct_TTF_FontTTF_Font;inSDL_ttf.h。我已将其缩小到新测试项目中的以下文件:Foo.h:#ifndefFOO_H#defineFOO_HstructTTF_Font;classFoo{TTF_Font*font;};#endif//FOO_HFoo.cpp:#include"Foo.h"#includ