一个带有格式说明的异构容器,可以与字符串相互转换。
typed_string_desc 就是字符串的类型描述, 支持如下几种基础类型:
str字符串类型boolbool值类型 取值要么是1 要么是0uint无符号整数int带符号整数float浮点数
然后对于基础类型,我们可以增加他的取值范围限定,方式为{"xxx": [a, b, c]},这里的xxx就是基础类型名字, 而a,b,c则是可以供选择的值,其类型为xxx:
{"int": [1, 2]}{"str": ["A", "B", "C"]}{"float": [1.0, 2.0]}
在这些基础类型之上我们提供了两种组合类型:
tuple类型,可以理解为结构体,声明方式为[A, B, C], 这里的A,B,C数量为任意多个,且每个元素都是一个有效的typed_string_desc,例子["float", "int", {"int": [1, 2]}]list类型,可以理解为数组, 声明方式为[A, n],这里的A是一个有效的typed_string_desc,而n是一个非负整数,表示数组的大小, 如果n==0,则表明是一个不限制大小的数组,例子["int", 2], [["int", "float"], 0]
对于更多的typed_string_desc的例子参见test目录下的parse_test.cpp里的测试样例
当前项目支持cmake的包管理,安装的时候只需要如下几步:
mkdir buildcd buildcmake .. -DCMAKE_INSTALL_PREFIX=<YOUR DIR>cmake --build ./ --target install如上四步之后,整个package就会安装在<YOUR DIR>目录下
如果有其它项目依赖于这个项目,则需要在CMakeLists里增加如下几行:
find_package(typed_string CONFIG REQUIRED)target_link_libraries(<YOUR EXE> typed_string)