Stroustrup a donné un discours l'année dernière sur sa GSL (Guideline Support Library). Il y a une implémentation par Micosoft à https://github.com/Microsoft/GSL . J'avais l'impression que le GSL était censé conseiller sur le mauvais style de codage et suggérer des améliorations.
À cette fin, j'ai installé le GSL de MSFT et créé un fichier C++:
#include <stdio.h>
#include <gsl.h>
int main()
{
int *i = new int;
puts("hello world");
}
et l'a construit en utilisant le Makefile:
msft : msft.cc
g++ -std=gnu++14 -I ../../src/GSL/include $^ -o $@
.PHONY : clean
clean :
rm -f msft
De toute évidence, il y a une fuite de ressources dans le code causée par le "nouveau".
Alors maintenant, je suis confus.
Guidelines Support Library (voir aussi gsl-lite comme alternative) est une bibliothèque C++ qui implémente certaines des fonctions et classes recommandées dans les C++ Core Guidelines . Un document contenant des conseils sur l'utilisation du C++ moderne. Il vaut la peine de lire ou de parcourir les directives de base C++ si vous souhaitez améliorer votre utilisation de C++. L'utilisation de la bibliothèque GSL est moins importante, mais pourrait être utile si vous vous retrouvez à implémenter du code qui s'y trouve déjà. Les directives de base C++ existent depuis quelques années maintenant, donc certaines choses, comme string_view, sont déjà disponibles (selon la version de C++ que vous compilez) et ne nécessitent pas de bibliothèque externe à utiliser.
Vous devez les utiliser comme suggéré dans le CppCoreGuidelines .
Lisez-les, comprenez comment cela s'applique à votre base de code/à vos habitudes/problèmes de programmation.
Visual Studio 2015 a plugins qui vous aident à vérifier si votre code se comporte bien selon GSL