Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Varlib

Varlib 提供了通用的变体类型(variant)以及配套的字符串和集合类。设计灵感来源于 Qt 的 QVariant 体系,但零外部依赖,可独立使用。

功能概览

说明
ZString UTF-16 字符串,支持丰富的字符串操作(查找、子串、大小写转换、trim、split/join)、数值解析(toInt/toFloat 等)、编码转换(UTF-8/Latin1/UTF-16)
ZStringView 轻量级只读 UTF-16 字符串视图,类似于 std::u16string_view
ZStringList ZString 列表,支持增删改查
ZVariant 核心变体类型,可持有 bool、整数、浮点数、ZString、ZStringList、ZVariantList、ZVariantMap、ZVariantHash 等,支持类型转换和写时复制
ZVariantList ZVariant 列表
ZVariantMap 有序映射表(ZString → ZVariant)
ZVariantHash 无序哈希映射表(ZString → ZVariant)

ZVariant 支持的类型

bool, char, unsigned char, short, unsigned short, int, unsigned int, long long, unsigned long long, float, double, ZString, ZStringList, ZVariantList, ZVariantMap, ZVariantHash, void*

编译

前置条件

  • CMake >= 3.16
  • 支持 C++17 的编译器(GCC 8+, Clang 7+, MSVC 2019+)

构建步骤

# 配置并构建
cmake -B build
cmake --build build

编译产物

  • 静态库 varlib — 链接到你的项目中使用
  • 测试程序 test_variant — 运行单元测试

运行测试

cmake --build build
./build/test_variant   # Linux / macOS
# build\Debug\test_variant.exe  或  build\Release\test_variant.exe  (Windows)

集成到你的项目

在 CMakeLists.txt 中:

add_subdirectory(path/to/varlib)
target_link_libraries(your_target PRIVATE varlib)

使用示例

#include "zvariant.h"
#include "zvariantmap.h"

// 创建不同类型的 variant
ZVariant v1(42);
ZVariant v2(3.14);
ZVariant v3(ZString("hello"));

// 类型转换
int num = v1.toInt();                  // 42
ZString str = v3.toString();           // "hello"
v1.convert(ZVariant::String);          // Int → String

// 使用映射表
ZVariantMap map;
map.insert(ZString("name"), ZVariant(ZString("Alice")));
map.insert(ZString("age"), ZVariant(25));

ZVariant name = map.value(ZString("name"));  // "Alice"
bool has = map.contains(ZString("age"));      // true

许可

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages