NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::cmdline类 参考

命令行参数解析器 更多...

#include <cmdline.hpp>

struct  option
 选项定义结构 更多...
struct  option_dependency
 选项依赖关系 更多...
struct  option_conflict
 选项冲突关系 更多...

Public 类型

enum class  conflict_behavior { error , warning , ignore }
 约束冲突处理行为 更多...
using validator = function<string(const string& name, const string& value)>
 选项值验证器类型

Public 成员函数

void add_option (const string &long_name, char short_name, const string &description, bool requires_value=false, bool allow_multiple=false, const string &default_value="")
 添加选项定义
void parse_os_args ()
 解析操作系统提供的命令行参数
void parse (int argc, const char *argv[])
 解析main函数参数
void parse (const vector< string > &args)
 解析字符串向量参数
string get (const string &long_name, size_t index=0) const
 获取选项值
bool has (const string &name) const
 检查选项是否存在
size_t count (const string &name) const
 获取选项出现的次数
const vector< string > & positional_args () const noexcept
 获取位置参数
const stringprogram_name () const noexcept
 获取程序名称
void print_help () const
 打印帮助信息
void add_dependency (const string &present, const string &required)
 添加选项依赖关系
void add_conflict (const string &option_a, const string &option_b)
 添加选项冲突关系
void set_conflict_behavior (conflict_behavior behavior) noexcept
 设置冲突处理行为
void load_config (const string &config_path, const string &section="")
 从配置文件加载选项值
void add_validator (validator v)
 添加选项验证器
void add_range_validator (string long_name, int64_t min_val, int64_t max_val)
 添加选项值范围验证器(数值范围)
void add_regex_validator (string long_name, const string &pattern)
 添加选项值正则验证器

静态 Public 成员函数

static vector< stringget_os_argv ()
 获取操作系统提供的命令行参数

详细描述

命令行参数解析器

支持解析符合POSIX风格和GNU风格扩展的命令行参数。 特性:

  • 长选项(–option)和短选项(-o)
  • 选项值(–option=value 或 -o value)
  • 多值选项
  • 默认值
  • 位置参数
  • 自动生成帮助信息

在文件 cmdline.hpp161 行定义.

成员类型定义说明

◆ validator

using neforce::cmdline::validator = function<string(const string& name, const string& value)>

选项值验证器类型

参数
name选项名称
value选项值
返回
验证通过返回空字符串,失败返回错误信息

在文件 cmdline.hpp231 行定义.

成员枚举类型说明

◆ conflict_behavior

约束冲突处理行为

枚举值
error 

冲突时抛出异常

warning 

冲突时打印警告

ignore 

冲突时忽略

在文件 cmdline.hpp197 行定义.

成员函数说明

◆ add_conflict()

void neforce::cmdline::add_conflict ( const string & option_a,
const string & option_b )

添加选项冲突关系

参数
option_a选项A
option_b选项B

◆ add_dependency()

void neforce::cmdline::add_dependency ( const string & present,
const string & required )

添加选项依赖关系

参数
present当此选项出现时
required此选项也必须出现

◆ add_option()

void neforce::cmdline::add_option ( const string & long_name,
char short_name,
const string & description,
bool requires_value = false,
bool allow_multiple = false,
const string & default_value = "" )

添加选项定义

参数
long_name长选项名称
short_name短选项字符
description选项描述
requires_value是否需要值
allow_multiple是否允许多次出现
default_value默认值
异常
cmdline_exception选项名重复时抛出

◆ add_range_validator()

void neforce::cmdline::add_range_validator ( string long_name,
int64_t min_val,
int64_t max_val )

添加选项值范围验证器(数值范围)

参数
long_name选项名称
min_val最小值(包含)
max_val最大值(包含)
异常
cmdline_exception选项不存在时抛出

◆ add_regex_validator()

void neforce::cmdline::add_regex_validator ( string long_name,
const string & pattern )

添加选项值正则验证器

参数
long_name选项名称
pattern正则表达式模式
异常
cmdline_exception选项不存在时抛出

◆ add_validator()

void neforce::cmdline::add_validator ( validator v)

添加选项验证器

参数
v验证器函数

可以多次调用以添加多个验证器,所有验证器都会被依次调用。 验证在 parse() 完成后、validate_constraints() 之前执行。

◆ count()

size_t neforce::cmdline::count ( const string & name) const
nodiscard

获取选项出现的次数

参数
name长选项名称
返回
选项出现次数

◆ get()

string neforce::cmdline::get ( const string & long_name,
size_t index = 0 ) const
nodiscard

获取选项值

参数
long_name长选项名称
index对于多值选项,指定索引
返回
选项值
异常
cmdline_exception选项不存在或无值时抛出

◆ get_os_argv()

vector< string > neforce::cmdline::get_os_argv ( )
staticnodiscard

获取操作系统提供的命令行参数

返回
参数字符串向量
异常
cmdline_exception获取失败时抛出

◆ has()

bool neforce::cmdline::has ( const string & name) const
nodiscard

检查选项是否存在

参数
name长选项名称
返回
是否在命令行中指定了该选项

◆ load_config()

void neforce::cmdline::load_config ( const string & config_path,
const string & section = "" )

从配置文件加载选项值

参数
config_path配置文件路径
section配置节名或嵌套键名
异常
cmdline_exception文件不存在或解析失败时抛出

支持的文件格式:

  • .ini:INI 格式,通过 section 参数指定节
  • .json:JSON 格式,通过 section 参数指定顶层键导航到嵌套对象
  • .toml:TOML 格式,通过 section 参数指定顶层键导航到嵌套表
  • .yaml / .yml:YAML 格式,通过 section 参数指定顶层键导航到嵌套映射
  • .env:环境变量格式(section 参数忽略)

配置文件中的值仅填充命令行未指定的选项,命令行参数优先级更高。

◆ parse() [1/2]

void neforce::cmdline::parse ( const vector< string > & args)

解析字符串向量参数

参数
args参数字符串向量
异常
cmdline_exception解析失败时抛出

◆ parse() [2/2]

void neforce::cmdline::parse ( int argc,
const char * argv[] )

解析main函数参数

参数
argc参数个数
argv参数数组
异常
cmdline_exception解析失败时抛出

◆ parse_os_args()

void neforce::cmdline::parse_os_args ( )

解析操作系统提供的命令行参数

异常
cmdline_exception解析失败时抛出

◆ positional_args()

const vector< string > & neforce::cmdline::positional_args ( ) const
inlinenodiscardnoexcept

获取位置参数

返回
位置参数向量引用

在文件 cmdline.hpp355 行定义.

◆ print_help()

void neforce::cmdline::print_help ( ) const

打印帮助信息

根据所有注册的选项自动生成格式化的帮助文本。

◆ program_name()

const string & neforce::cmdline::program_name ( ) const
inlinenodiscardnoexcept

获取程序名称

返回
程序名称

在文件 cmdline.hpp361 行定义.

◆ set_conflict_behavior()

void neforce::cmdline::set_conflict_behavior ( conflict_behavior behavior)
inlinenoexcept

设置冲突处理行为

参数
behavior冲突时的处理方式

在文件 cmdline.hpp395 行定义.


该类的文档由以下文件生成: