Care „sunt” orientările GSL C++? (Programare, C++, Librărie De Sprijin Pentru Ghiduri)

blippy a intrebat.

Stroustrup a ținut o conferință anul trecut despre GSL (Guideline Support Library). Există o implementare de către Micosoft la adresa https://github.com/Microsoft/GSL . Aveam impresia că GSL ar trebui să ofere consultanță cu privire la stilul de codare greșit și să sugereze îmbunătățiri.

În acest scop, am instalat GSL de la MSFT și am creat un fișier C++:

#include <stdio.h>
#include <gsl.h>

int main()
{
        int *i = new int;
        puts("hello world");
} 

și l-am construit folosind Makefile:

msft : msft.cc
        g++ -std=gnu++14 -I ../../src/GSL/include $^ -o [email protected]

.PHONY : clean
clean :
        rm -f msft

Evident, există o scurgere de resurse în cod cauzată de „new”.

Așa că acum sunt confuz.

  • Ce ar trebui să „facă” de fapt GSL-ul?
  • De unde pot obține verificatorul de cod sursă care avertizează cu privire la nerespectarea orientărilor? Stroustrup părea să sugereze că există de fapt ca instrument, dar este acesta cazul?

Comentarii

  • Ei bine, cel puțin ei sunt sinceri… „presupune o platformă care implementează suportul C++14. Există soluții de rezolvare specifice pentru a suporta MSVC 2013 și 2015.” Ca să fiu corect, am înțeles că pentru a suporta c++11 trebuie să reconstruiască complet întregul lor compilator… dar au trecut 5 ani și încă au deficiențe fundamentale. Expression sfinae? nu sunt suportate. –  > Por xaxxon.
  • Nu cred că această închidere a fost potrivită. Această întrebare întreabă cum să folosești GSL, ceea ce este o întrebare StackOverflow perfect bună. Se cere doar o recomandare pentru un instrument în treacăt, la ultimul punct, care ar putea fi trivial eliminat. –  > Por Tom Anderson.
  • „Deci acum sunt confuz.” Bine, acum acum sunt confuz. Mă așteptam la rezultatul make să fie postat, dar nu este acolo. –  > Por xdavidliu.
2 răspunsuri
ejgottl

The Biblioteca de asistență pentru orientări (vezi și gsl-lite ca o alternativă) este o bibliotecă C++ care implementează unele dintre funcțiile și clasele recomandate în Ghidul Orientări de bază C++. Un document cu sfaturi privind modul de utilizare a limbajului C++ modern. Merită să citiți sau să răsfoiți Ghidul de bază C++ dacă doriți să vă îmbunătățiți utilizarea limbajului C++. Utilizarea bibliotecii GSL este mai puțin importantă, dar ar putea fi utilă dacă vă aflați în situația de a implementa cod care se află deja în ea. Ghidul C++ Core Guidelines există de câțiva ani, astfel încât unele lucruri, cum ar fi string_view, sunt deja disponibile (în funcție de versiunea de C++ pe care o compilați) și nu necesită o bibliotecă externă pentru a fi utilizate.

Comentarii

  • Rețineți că doar jumătate sau chiar mai puțin din liniile directoare vă vor îmbunătăți C++. Cealaltă jumătate îl va înrăutăți. –  > Por Pablo Ariel.
  • și cum este asta? –  > Por JFFIGK.
Jepessen

Trebuie să le folosiți așa cum se sugerează în CppCoreGuidelines.

Citiți-le, înțelegeți cum se aplică la baza dvs. de cod / obiceiurile / problemele dvs. de programare.

Visual Studio 2015 are pluginuri care vă ajută să verificați dacă codul dvs. se comportă bine în conformitate cu GSL