c++ - 什么是 C++ GSL 指南?

标签 c++ guideline-support-library

Stroustrup 去年就他的 GSL(指南支持库)发表了一次演讲。 Micosoft 在 https://github.com/Microsoft/GSL 有一个实现。 .我的印象是 GSL 应该就糟糕的编码风格提出建议,并提出改进建议。

为此,我安装了 MSFT 的 GSL 并创建了一个 C++ 文件:

#include <stdio.h>
#include <gsl.h>

int main()
{
        int *i = new int;
        puts("hello world");
} 

并使用 Makefile 构建它:

msft : msft.cc
        g++ -std=gnu++14 -I ../../src/GSL/include $^ -o $@

.PHONY : clean
clean :
        rm -f msft

很明显,new导致代码中存在资源泄漏。

所以现在我很困惑。

  • GSL 实际上应该做什么
  • 我在哪里可以得到源代码检查器,它会警告不符合准则的情况? Stroustrup 似乎暗示它实际上是作为一种工具存在的,但真的是这样吗?

最佳答案

Guidelines Support Library (另见 gsl-lite)是一个 C++ 库,它实现了 C++ Core Guidelines 中推荐的一些函数和类。 .一份关于如何使用现代 C++ 的建议的文档。如果您想改进 C++ 的使用,值得阅读或略读 C++ 核心指南。使用 GSL 库不太重要,但如果您发现自己实现了其中已有的代码,它可能会很有用。 C++ 核心指南已经存在了几年,所以有些东西,比如 string_view,已经可用(取决于你编译到的 C++ 版本)并且不需要使用外部库。

关于c++ - 什么是 C++ GSL 指南?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36980975/

相关文章:

c++ - protobuf 3 中的原始类型

c++ - Ensures() - 指南支持库

c++ - 您是否打算从违反契约(Contract)中恢复过来?

c++ - 返回值为枚举的地址数组

从 double 转换为 unsigned int 时的 C++ 整数溢出问题

c++ - 运行时检查失败#2-变量 'sortObject'周围的堆栈已损坏。怎么修?

c++ - 指向未初始化数据成员的指针

c++ - 是否有合法的方式从 gsl::not_null<T> 转移?

c++ - 我应该用 GSL 跨度替换 (void*, size) 吗?

c++ - 将 gsl::zstring_view 与 C API 结合使用