24

Stroustrup 去年发表了关于他的 GSL(Guideline Support Library)的演讲。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 似乎暗示它实际上是作为一种工具存在的,但事实是这样吗?
4

2 回答 2

12

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

于 2017-12-02T14:37:38.953 回答
5

您必须按照CppCoreGuidelines中的建议使用它们。

阅读它们,了解它如何应用于您的代码库/编程习惯/问题。

Visual Studio 2015 的插件可帮助您检查您的代码是否符合 GSL

于 2016-05-02T11:15:49.097 回答