项目简介
gsl-lite 是 C++ 核心指南支持库的一种实现,最初基于 Microsoft GSL 开发。它是一个单文件的头文件库,适用于 C++98、C++03 及更高版本(如 C++11、C++14、C++17、C++20),并且能识别 CUDA 平台,对部分函数进行相应装饰。
项目的主要特性和功能
安全性相关
- 生命周期安全:通过
not_null<>
类型确保指针非空,owner<>
类型明确所有权,避免资源泄漏和悬空指针问题。 - 边界安全:
span<>
等视图类型可安全处理连续内存区域,避免越界访问。
类型和工具
- 定义多种标签类型,如
zstring
、wzstring
等,便于处理 C 风格字符串。 - 提供
index
、dim
、stride
等类型用于容器索引和大小操作。 - 借助
final_action<>
等工具实现作用域结束时的操作。
断言和检查
提供丰富的合约检查宏,如 gsl_Expects()
、gsl_Ensures()
等,可控制不同模式下的合约检查行为。
兼容性
与多种编译器(GCC、Clang、MSVC 等)和平台(Linux、Windows、MacOS 等)兼容,且在不同操作系统上都有测试支持。
安装使用步骤
作为 CMake 包使用
- 使用 Vcpkg
- 运行 Vcpkg 的安装命令:
vcpkg install gsl-lite
。 - 配置项目时,传递 Vcpkg 工具链文件作为参数:
bash cd <my-program-source-dir> mkdir build cd build cmake -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake .. cmake --build ../build
- 运行 Vcpkg 的安装命令:
- 使用导出的构建目录
- 复制 gsl-lite 仓库并使用 CMake 配置构建目录:
bash cd <gsl-lite-source-dir> mkdir build cd build cmake ..
- 配置项目时,传递 CMake 构建目录作为参数:
bash cd <my-program-source-dir> mkdir build cd build cmake -Dgsl-lite_DIR:PATH=<gsl-lite-source-dir>/build .. cmake --build ../build
- 复制 gsl-lite 仓库并使用 CMake 配置构建目录:
其他方式
- 头文件库方式:将 gsl-lite 源目录的 "include" 子目录添加到项目的包含路径中。
bash g++ -std=c++03 -I<gsl-lite-source-dir>/include main.cpp
bash mkdir -p external/include/gsl cp <gsl-lite-source-dir>/include/gsl/gsl-lite.hpp external/include/gsl/ g++ -std=c++03 -Iexternal/include main.cpp
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】