web-dev-qa-db-ja.com

C ++ GSLガイドラインとは何ですか?

Stroustrupは昨年、彼のGSL(ガイドラインサポートライブラリ)について講演しました。 https://github.com/Microsoft/GSL にMicosoftによる実装があります。私は、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

明らかに、「新規」によって引き起こされるコードのリソースリークがあります。

だから今私は混乱しています。

  • GSLが実際に「行う」ことになっているものは何ですか?
  • ガイドラインへの違反を警告するソースコードチェッカーはどこで入手できますか? Stroustrupは、実際にツールとして存在することを暗示しているように見えますが、そうですか?
18
blippy

ガイドラインサポートライブラリ (代替として gsl-lite も参照)は、 C++コアガイドラインで推奨されている関数とクラスの一部を実装するC++ライブラリです。 。最新のC++の使用方法に関するアドバイスを含むドキュメント。 C++の使用を改善したい場合は、C++コアガイドラインを読んだり読んだりする価値があります。 GSLライブラリの使用はそれほど重要ではありませんが、既にGSLライブラリに含まれているコードを実装していることに気付いた場合に役立ちます。 C++コアガイドラインは数年前から存在しているため、string_viewなどの一部のものが既に利用可能であり(コンパイルするC++のバージョンによって異なります)、外部ライブラリを使用する必要はありません。

7
ejgottl

CppCoreGuidelines で提案されているように使用する必要があります。

それらを読み、それがコードベース/プログラミング習慣/問題にどのように適用されるかを理解してください。

Visual Studio 2015には plugins があり、GSLに従ってコードが適切に動作するかどうかを確認できます

4
Jepessen