草庐IT

command-line-options

全部标签

C++ boost::program_options 读取与 getopt_long 兼容的参数

我正在开发现有程序的更新。我正在用boost::program_options替换Posix的getopt_long()。但是我的工作没有按预期进行:我想阅读如下参数:-server=www.example.com-cconfig.txt我尝试了来自boost::program_options::command_line_style的多种可能性,但我找不到可以提供与getopt_long相同的行为的组合。我发现对于参数:-server=www.example.com我需要旗帜:command_line_style::allow_long_disguise|command_line_st

c++ - GDB 不断产生 "No line xx in file"错误,即使文件中包含以下行

这真的很烦人。我用几个文件得到了这个,但我不明白为什么。这是一个示例源代码。(请不要关心内容,只需复制粘贴并在my_atoi函数的某处设置断点,gdb不允许设置断点)。my_atoi适用于十进制、八进制和十六进制数,将C风格的字符串(表示具有这些基数的数字)转换为整数(不过这只是为了练习。我不会用它,所以别担心).为了正确测试它,请在命令行中输入一个参数。即./my_atoi0x12编译命令如下:g++-g-omy_atoimy_atoi.cpp这是gdb命令:gdb-r--annotate=3my_atoi我为遇到类似错误的另一个文件启用了-r,并且它已修复(虽然我不明白为什么)。但

c++ - 使用 boost::program_options 解析 LPTSTR* 命令行参数

我在使用boost:program_options进行命令行解析时遇到问题。解释它的最快方法是这样显示代码:conststd::vectorargs;if(ac>0&&NULL!=av)//acisaULONG{for(inti=0;i解析器ctor应该采用conststd::vectortypedefbasic_command_line_parsercommand_line_parser;typedefbasic_command_line_parserwcommand_line_parser;/**Createsinstanceof'command_line_parser',pass

c++ - libstdc++ : DSO missing from command line

我在执行gtkmm应用程序的makefile时遇到问题。我已经实现了一个简单的解决方案,但是,我收到以下错误:g++-Wall-std=c++11pkg-configgtkmm-3.0--cflags-cmain.cppccmain.opkg-configgtkmm-3.0--libs-omain/usr/bin/ld:main.o:undefinedreferencetosymbol'__gxx_personality_v0@@CXXABI_1.3'/usr/lib/x86_64-linux-gnu/libstdc++.so.6:erroraddingsymbols:DSOmissi

c++ - 限制 std::cout 中 boost::options_description 中默认值的精度

当我构建一个boost::options_description实例时options.add_options()("double_val",value(&config.my_double)->default_value(0.2),"it'sadouble");然后想自动输出可用于我的程序的选项,然后把std::cout默认值0.2显示的精度太高,当我有长变量名时,这会有效地扰乱我的输出:--double_val(=0.20000000000000001)it'sadouble不幸的是,之前对std::cout.precision的调用没有帮助:cout.precision(5);std

c++ - 在没有 #define 的情况下捕获 __LINE__ 和 __FILE__

尝试确定以下C风格代码的“现代”实现:#definelogError(...)log(__FILE__,__LINE__,__VA_ARGS__)是否可以使用不依赖于#define的可变参数模板或类似的东西来捕获它?所需用例:logError("Ohno!Anerroroccurred!");__FILE__和__LINE__是在后台捕获的,但反射(reflect)了调用logError的文件名和行号。 最佳答案 宏确实是您唯一的选择,至少在std::source_location之前是这样。使其成为标准并满足您的愿望。

c++ - 使用 libc++ 正则表达式库 (C++11) 匹配 "beginning-of-line"

我想匹配以给定单词开头的所有行,比如iheap。如果我没记错的话,正则表达式(在ECMAScript语法中)"^iheap.*"应该可以解决问题。但是,当我使用libc++的正则表达式库在C++11中对此进行测试时,只有第一行匹配。所以"^..."似乎只匹配输入的开头而不是行的开头。这是一个例子:#include#include#includeusingnamespacestd;intmain(){regexrx("^iheap.*");strings="iheapsayshello.\niheapsayshelloagain.\n";cout输出:iheapsayshello.ihe

c++ - 您是否应该能够从 T 具有非平凡构造函数的 std::optional<T> 移动?

我正在尝试用clang编译WebKit,我正在点击compileerrors由于本质上是以下模式:#include#includestructX{X()=default;X(constX&other){}};structY{std::optionalx;;};intmain(){Yfoo;Ybar(std::move(foo));}所以,他们使用std::optional其中T(在他们的情况下,WTF::Variant)具有非平凡的复制/移动构造函数,然后使用std::optional移动构造函数。使用GCC8.1.1可以很好地编译,但不能使用clang6.0.1(使用GCC8.1.1

c++ - 如何在不使用 GL_LINE_SMOOTH 的情况下使用 OpenGL 在 2D 场景中绘制平滑线条?

由于GL_LINE_SMOOTH不是硬件加速的,也不支持所有GFX卡,您如何在2D模式下绘制平滑的线条,看起来与GL_LINE_SMOOTH一样好?Edit2:我目前的解决方案是从2个四边形绘制一条线,从边缘渐变到零透明度,这2个四边形之间的颜色将是线条颜色。它适用于基本的平滑线条渲染,并且不使用纹理,因此渲染速度非常快。 最佳答案 因此,您想要流畅的线条,但不包含:线条平滑。全屏抗锯齿。着色器。好的。最好的办法是使用Valve的Alpha-TestedMagnificationtechnique.根据您的需要,基本思想是创建一个表

node.js - cygwin/windows下的npm脚本 : the syntax of the command is incorrect

我在Windows7机器上运行Node6.9.5和NPM3.10.10。我的终端是Cygwin2.877。如果我尝试在Cygwin中运行以下命令,它工作正常:mkdirmydir/mysubdir;但是,如果我将其放入package.json文件中,例如:"scripts":{"test":"mkdirmydir/mysubdir"},然后运行:npmruntest它失败了:Thesyntaxofthecommandisincorrect.谷歌搜索以上内容后,这似乎是Windows命令提示符错误,而不是Cygwin错误。因此,NPM似乎正在尝试使用命令提示符而不是现有的Cygwin环境