Что такое «есть»? руководящие принципы C ++ GSL?

В прошлом году Страуструп выступил с докладом о своей 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

Очевидно, что в коде есть утечка ресурсов, вызванная «новым».

Так что теперь я в замешательстве.

  • Что GSL должен «делать»?
  • Где я могу получить программу проверки исходного кода, которая предупреждает о несоответствии правилам? Похоже, Страуструп подразумевает, что он действительно существует как инструмент, но так ли это?

13

Решение

Библиотека поддержки руководства (смотрите также GSL-облегченный в качестве альтернативы) — это библиотека C ++, которая реализует некоторые функции и классы, рекомендованные в Основные положения C ++. Документ с советами о том, как использовать современный C ++. Если вы хотите улучшить использование C ++, стоит прочитать или просмотреть более подробные рекомендации по ядру C ++. Использование библиотеки GSL менее важно, но может быть полезно, если вы обнаружите, что реализуете код, который уже есть в нем. Основные принципы C ++ существуют уже несколько лет, поэтому некоторые вещи, такие как string_view, уже доступны (в зависимости от того, какую версию C ++ вы компилируете) и не требуют использования внешней библиотеки.

4

Другие решения

Вы должны использовать их, как предложено в CppCoreGuidelines.

Прочитайте их, поймите, как это относится к вашей кодовой базе / привычкам / проблемам программирования.

Visual Studio 2015 имеет плагины что поможет вам проверить, хорошо ли работает ваш код в соответствии с GSL

3

По вопросам рекламы [email protected]