如何使用 boost::program_options 接受可选标志?

2024-03-04

我需要实现一个可选标志,比如说-f/--flag。由于这是一个标志,因此没有关联的值。在我的代码中,我只需要知道该标志是否已设置。使用 boost::program_options 执行此操作的正确方法是什么?


执行此操作的一种便捷方法是使用bool_switch功能:

bool flag = false;

namespace po = boost::program_options;

po::options_description desc("options");

desc.add_options()
  ("flag,f", po::bool_switch(&flag), "description");
po::variables_map vm;
//store & notify

if (flag) {
  // do stuff
}

这比手动检查字符串更安全(字符串在整个定义中仅使用一次)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 boost::program_options 接受可选标志? 的相关文章

  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • 使用预编译头减少 clang 编译时间

    我正在开发一个数据库项目 该项目将查询 以某种高级语言表示 编译为 C 代码 这段代码由数据库编译并执行 那部分工作得很好 现在 我正在尝试减少 C 查询代码的编译时间 我想知道是否可以使用预编译头来提高性能 该查询被转换为一个名为 Que
  • 代码块 power 函数在 c 中不起作用

    我正在使用代码块来学习c 我的代码是 include
  • 操作/Lambda 表达式内存管理问题

    我将一个操作存储在局部变量中 然后在该局部变量超出范围后使用 使用前是否有被清理的危险 这是一个例子 public List GetMaps Action
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • 在 C++ 中使用表达式模板进行符号微分

    如何在 C 中使用表达式模板实现符号微分 一般来说 您需要一种表示符号的方法 即编码的表达式模板 例如3 x x 42 以及一个可以计算导数的元函数 希望您对 C 中的元编程足够熟悉 知道这意味着什么和需要什么 但可以给您一个想法 This
  • WinForms - 表单大小错误

    我们有以下代码 private void MainForm Shown object sender EventArgs e RepositionForm private void RepositionForm Rectangle rect
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • 将一个整数从 C 客户端发送到 Java 服务器

    我使用此代码将一个整数从我的 Java 客户端发送到我的 Java 服务器 int n rand nextInt 50 1 DataOutputStream dos new DataOutputStream socket getOutput
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 从 exit() 和 fork() 返回的结果奇怪地发生了位移

    我有一个 C 代码 有时会自行分叉 每个分叉都会执行一些操作 然后返回一个错误代码 目前 每个子进程返回其 ID 0 n void other int numero exit numero int main for int i 0 i lt
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • 如何在 Winform DataGridView 中创建不同的单元格格式

    我有一个 DataGridView 我将其绑定到 DataTable DataTable 是一个全数字值 要求 DataGridView 中的每 n 行都包含文本 而不是数值 以便在视觉上为用户分隔部分 我很高兴在绑定后将此文本数据放入 D
  • 清理堆分配对象的良好实践或约定?

    我正在学习C 我有 C C ObjC 背景 相当高级的语言 在 C 或 ObjC 上 作为函数或方法的结果返回堆分配的对象是很简单的 因为对象的清理是受管理的 按照惯例 会在适当的时候销毁 但我不知道在 C 中应该如何处理这个问题 例如 s
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • 如何在用户空间程序中使用内核 libcrc32c (或相同的函数)?

    我想在我自己的用户空间程序中进行一些 CRC 检查 我发现内核加密库已经在系统中 并且支持 SSE4 2 我尝试直接 include

随机推荐

  • 关闭亮点

    我想关闭 PHPStorm 对非错误相关事物的烦人的突出显示 我读了他们的文档 其中说要转到首选项 gt 编辑器 gt 检查 我取消了 SQL 的所有选择 但我仍然无缘无故地得到绿色突出显示 我如何禁用此功能 这很让人分心 That s 语
  • 使用反射实例化内部类时出现 InstantiationException。为什么?

    我无法创建 B 对象 但为什么呢 public class AFactory public int currentRange private abstract class A protected final Object range cur
  • 线程 C++ 的瓶颈

    所以我只是想验证一下我的理解 希望你们能够消除任何误解 所以本质上我有两个线程使用相同的锁并在持有锁时执行计算 但有趣的是 在锁内我将导致线程休眠一小段时间 对于两个线程 每个线程的睡眠时间都会略有不同 由于锁的工作方式 较快的线程是否会因
  • 运行 GAE 开发服务器时,本地 MySQLdb 连接失败,并出现 paramstyle 的 AttributeError

    我正在使用 Flask Alchemy 针对 Cloud SQL 构建 GAE Flask 应用程序 并运行dev appserver在构建应用程序时对其进行测试 但是 如果我设置SQLALCHEMY DATABASE URI to a m
  • 通过蓝牙进行多点连接?

    我开始做广告 开始浏览 什么时候在同一个WiFi下 它可以工作 但是当我关闭 WiFi 时只留下蓝牙 甚至也不 void browser MCNearbyServiceBrowser browser foundPeer MCPeerID p
  • 如何使用 Google Drive API 将文件传输到其他用户的云端硬盘?

    我正在尝试转移当前属于我的 Google 文档 并将其移至另一个用户的 Google 云端硬盘的根目录 两个帐户都位于同一域中 我使用服务帐户来访问所有用户 起初我尝试通过修改权限来做到这一点 这将使第二个用户能够访问该文件 但不会将其放入
  • 如何使用“Matlab Data / Engine API for c++”在 C++ 中加载 .mat

    我正在尝试在 C 程序中包含 mat 然而 我无法使用传统的 mat h 由于 Matlab API for C 之间的内部兼容性问题 https de mathworks com help matlab matlab c api to r
  • 如何迭代 JavaScript 对象的属性名称?

    我想从 JavaScript 对象获取属性名称以动态构建表 例如 var obj fname joe lname smith number 34 for var i 0 i lt obj properties length i alert
  • 获取 std::list<>::iterator 的值到指针?

    我如何循环遍历 stl List 并存储其中一个对象的值以供稍后在函数中使用 Particle closestParticle for list
  • 从 php 调用 swi-prolog

    我正在尝试从 php 脚本中调用 swi prolog 例如 exec start plwin exe f C path load pl g run from file os1 print r os1 我可以看到 prolog 窗口打开并遵
  • 禁止 JavaScript/HTM 页面中的 ADO 安全警告

    我有一个功能齐全的网站存储在网络驱动器上 还有一个充当该网站数据库的 Access 数据库 由于缺乏服务器端代码 我被迫使用 JavaScript 创建 ADO ActiveX 对象来连接到数据库 这有效 我遇到的问题是 每当用户打开该站点
  • python 中的类的 Lambda 函数?

    一定有一种简单的方法可以做到这一点 但不知何故我可以解决它 我描述我想要的最好的方法是类的 lambda 函数 我有一个库需要一个类的未实例化版本作为参数来使用 然后它实例化该类本身以进行处理 问题是我希望能够动态创建该类的版本 以传递给库
  • 警告:preg_match() [function.preg-match]:编译失败:在偏移处没有可重复的内容

    我正在尝试将 preg match 检查从 url 检查更改为用户名检查 最小 最大 2 16 个字符 破折号 空格和连字符可以接受 我收到这个错误 Warning preg match function preg match 编译失败 在
  • 拦截Ajax请求?

    我试图拦截所有用普通 JavaScript 发出的 AJAX 请求 但我在 Stack Overflow 上发现的内容似乎不起作用 最简单的 我会说 功能性 代码如下 function open XMLHttpRequest prototy
  • 将自定义组件添加到 intelliJ 中的 FXML 场景构建器

    我想将自定义组件 自定义组件添加到 intelliJ 中的 javafx 场景生成器中 我目前使用的是java 8 1 我听说 java 10 可以向场景构建器添加组件 因为它有 java 2 0 我安装了java 10 但我不知道如何切换
  • 如果服务器端已有数据,则阻止 componentDidMount 获取数据

    ComponentDidMount 在组件安装时触发 包括在服务器端渲染后进行水合时 我在网上找到的解决方案之一是检查该州是否有数据 然而 这需要在每个组件上包含大量代码 还有哪些其他解决方案 componentDidMount if re
  • Django - 多态模型还是一个大模型?

    我目前正在 Django 中开发一个模型 其中一个模型可以具有多种不同的特征 具体取决于它是什么类型的对象 因此 假设我们有一个名为哺乳动物的模型 它可以是大象或海豚 分别具有自己的特征 tusk length 和 flipper leng
  • 数据帧到长格式

    我有以下 df tz head state 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 0 AL 5 7 4 5 4 0 4 0 5 7 11 0 10 5 9 6
  • 按位 - 如何检查一个二进制数是否包含另一个二进制数?

    A 110000000 384 Blue Red B 011000010 194 Green Black Red A B C 010000000 128 Red 我如何检查 B 是否包含 A 中的所有位以及其他位 在上面的情况下 我想得到
  • 如何使用 boost::program_options 接受可选标志?

    我需要实现一个可选标志 比如说 f flag 由于这是一个标志 因此没有关联的值 在我的代码中 我只需要知道该标志是否已设置 使用 boost program options 执行此操作的正确方法是什么 执行此操作的一种便捷方法是使用boo