2016-05-02 11 views
8

Stroustrup ha tenuto un discorso lo scorso anno sulla sua GSL (Guideline Support Library). C'è un'implementazione di Microsoft al numero https://github.com/Microsoft/GSL. Avevo l'impressione che il GSL avrebbe dovuto consigliare uno stile di codifica errato e suggerire miglioramenti.Quali sono le linee guida C++ GSL?

A tal fine, ho installato GSL di MSFT e ha creato un file C++:

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

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

e costruito usando il Makefile:

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

.PHONY : clean 
clean : 
     rm -f msft 

Ovviamente, v'è una perdita di risorse nel codice causati dal "nuovo".

Quindi ora sono confuso.

  • Che cosa dovrebbe effettivamente "fare" il GSL?
  • Dove posso ottenere il correttore del codice sorgente che avverte della mancata conformità della linea guida? Stroustrup sembrava implicare che in realtà esiste come uno strumento, ma è così?
+0

beh, almeno sono onesti .. "si presuppone una piattaforma che implementa il supporto C++ 14. Esistono soluzioni specifiche per supportare MSVC 2013 e 2015." Per essere onesti, la mia comprensione è di supportare C++ 11 che devono ricostruire completamente il loro intero compilatore ... ma sono passati 5 anni e hanno ancora delle carenze fondamentali. Espressione sfinae? non supportato. – xaxxon

+1

Non credo che questa stretta fosse appropriata. Questa domanda sta chiedendo come utilizzare il GSL, che è una domanda StackOverflow perfettamente valida. Richiede solo una raccomandazione per uno strumento che passa, nell'ultimo punto, che potrebbe essere cancellato banalmente. –

risposta

2

È necessario utilizzarli come suggerito nello CppCoreGuidelines.

Leggilo, capisci come si applica al tuo codice base/abitudini/problemi di programmazione.

Visual Studio 2015 ha plugins che vi aiutano a controllare se il codice si comporta bene secondo GSL

0

Il Guidelines Support Library (vedi anche gsl-lite come alternativa) è una libreria C++ che implementa alcune delle funzioni e le classi indicate nella il C++ Core Guidelines. Un documento con consigli su come utilizzare il C++ moderno. Vale la pena leggere o sfogliare le linee guida C++ Core se si desidera migliorare l'uso del C++. L'utilizzo della libreria GSL è meno importante, ma potrebbe essere utile se ti trovi a implementare il codice già presente. Le linee guida C++ Core sono disponibili da alcuni anni, quindi alcune cose, come string_view, sono già disponibili (a seconda della versione del C++ che si sta compilando) e non richiedono una libreria esterna da utilizzare.

Problemi correlati