В прошлом году Страуструп рассказал о своей GSL (справочной библиотеке поддержки). Существует реализация Micosoft по адресу https://github.com/Microsoft/GSL. У меня создалось впечатление, что GSL должен был посоветовать плохой стиль кодирования и предлагать улучшения.Что такое «руководящие принципы C++ GSL»?
Для этого я установил GSL MSFT и создан файл 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 [email protected]
.PHONY : clean
clean :
rm -f msft
Очевидно, что существует утечка ресурсов в коде вызывается «новым».
Итак, теперь я в замешательстве.
- Что такое GSL, который должен фактически «делать»?
- Где я могу получить средство проверки исходного кода, предупреждающее о несоблюдении рекомендаций? Строуструп, казалось, подразумевал, что он фактически существует как инструмент, но так ли это?
хорошо, по крайней мере, они честны .. «предполагает платформу, которая реализует поддержку C++ 14. Существуют определенные способы обхода решений для поддержки MSVC 2013 и 2015 годов». Справедливости ради, я понимаю, что для поддержки C++ 11 им необходимо полностью перестроить весь свой компилятор ... но прошло уже 5 лет, и у них все еще есть фундаментальные недостатки. Выражение sfinae? не поддерживается. – xaxxon
Я не считаю, что это близко подходит. Этот вопрос спрашивает, как использовать GSL, что является отличным вопросом StackOverflow. Он только запрашивает рекомендацию для инструмента, проходящего в последней точке пули, которая может быть тривиально удалена. –