简介 很多人使用界面来输入数据,本文的程序介绍如何使用Boost的program_options控制输入. 程序中使用了: 1. 短选项 2. 可以指定多个参数的选项 程序 #include <iostream> #include <vector> #include <string> using namespace std; // boost header files #include <boost/program_options.hpp> namespac…
源码: #include <boost/program_options.hpp> namespace po = boost::program_options; int main(int argc, char** argv) { int compression; po::options_description desc("Allow options"); desc.add_options() ("help", "produce help mess…
简介 如果使用比较多的命令行程序的话,对于命令行参数的输入肯定不会陌生,大部分的程序都是通过类似下面的形式进行输入的,比如熟悉的ls ls --all -l --color=auto 这里面包含了三种不同的命令行输入--all,-l和--color=auto.如果使用一般的解决方法的话,是使用getopt.h文件中的getopt函数.其具体的教程可以看<Linux下getopt()函数的简单使用>,其使用方法比较麻烦.而且只支持一个字符的选项,如果要像--color=auto一样支持长选项,必…
由于系统库getopt和getopt_long用起来不够直观,仔细看了下boost发现Boost.Program_options可以满足我的需求,它和getopt系列函数一样,可以抓起命令行参数,这里写下我对Boost.Program_options的理解. 一.getopt的不足 使用过了getopt函数后,我感觉它不足的地方(可能是我没研究明白的问题),我觉得getopt系列函数的不足有下面几点: 1.使用switch-case语句,导致程序看起来不是太美观,不怎么好看 2.没法使用一个参数…
一.命令行解析 tprogram_options解析命令行参数示例代码: #include <iostream> using namespace std; #include <boost/program_options.hpp> namespace po = boost::program_options; int main(int argc, char*argv[]) { //int level; po::options_description desc("Allowed…
1.阅读rviz中的源码时在rviz/visualizer_app.cpp中遇到如下代码: po::options_description options; options.add_options() ("help,h", "Produce this help message") ("splash-screen,s", po::value<std::string>(), "A custom splash-screen ima…
介绍 程序参数项(program options)是一系列name=value对,program_options 允许程序开发者获得通过命令行(command line)和配置文件(config file)获取这些参数项. 为什么需要这样一个库?为什么比你手工写代码分解命令行参数要好? 使用更容易.定义参数处理的语法简单,库自身很小.像转换参数值到指定的类型和保存参数值到变量的事情都是自动处理. 错误报告更友好.可报告错误的命令行参数.另外这个库能自动生成使用帮助,避免手工更新使用帮助导致的不一…
Boost.PropertyTree 应该是 Boost 1.41.0 开始正式加入 Boost 版本的.目前 ( 2010/02/28 ) 能下到的最新版本是 1.42.0. 主要作用/应用场合 Boost.PropertyTree 提供了一种结构化的数据存储容器.并且提供了一系列的解释器可以将内存中的结构与具体格式相互转换 (比如: INI, XML, JSON ). 至少可以用在: 进程间通讯或者跨语言的进程间的通讯 一些配置文件的存取 网络通讯协议的格式 基本用法 基本用法有 2 种场景…
本文将介绍几个 Boost 实用工具类,包括 tuple.static_assert.pool.random 和 program_options等等.需要对标准 STL 具备一定的了解才能充分理解本文的内容. 1.boost::tuple 类 有时,希望 C++ 函数返回多个不相关的值.在推出 STL 之前,实现此目的的方法是创建所有不相关变量的结构,并以指针或引用的形式返回它们或作为参数传递给函数——但是任一种方法都不是表达程序员意图的方法.STL引入了 pair,可将其用于聚合不相关的数据部…
C++确实很复杂,神一样的0x不知道能否使C++变得纯粹和干爽? boost很复杂,感觉某些地方有过度设计和太过于就事论事的嫌疑,对实际开发工作的考虑太过于理想化.学习boost本身就是一个复杂度,有魄力在项目中广泛采用boost复杂度会再加一层,抓狂的编译时间,井喷式的编译错误,运行时崩溃后的咒语式堆栈-- 其中好的东西还是值得用的,但凡事有个度.如果将应用做到boost这个级别了,要么你很牛,要么你在装. 用不用,看看还是有好处的.建议中高级以上C++程序员了解boost. 第1章 Boos…