В прошлом году Страуструп выступил с докладом о своей 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-облегченный в качестве альтернативы) — это библиотека C ++, которая реализует некоторые функции и классы, рекомендованные в Основные положения C ++. Документ с советами о том, как использовать современный C ++. Если вы хотите улучшить использование C ++, стоит прочитать или просмотреть более подробные рекомендации по ядру C ++. Использование библиотеки GSL менее важно, но может быть полезно, если вы обнаружите, что реализуете код, который уже есть в нем. Основные принципы C ++ существуют уже несколько лет, поэтому некоторые вещи, такие как string_view, уже доступны (в зависимости от того, какую версию C ++ вы компилируете) и не требуют использования внешней библиотеки.
Вы должны использовать их, как предложено в CppCoreGuidelines.
Прочитайте их, поймите, как это относится к вашей кодовой базе / привычкам / проблемам программирования.
Visual Studio 2015 имеет плагины что поможет вам проверить, хорошо ли работает ваш код в соответствии с GSL