I modelli possono essere programmi in sé.Esiste un debugger di modelli?
Esiste un debugger modello in modo da poter passare attraverso "l'esecuzione" del modello?
Questo dovrebbe essere fondamentalmente qualcosa che viene eseguito durante la compilazione/collegamento/codegen - ed è diverso dal debug del programma generato.
Anche in molti ambienti "primitivi" in cui non è possibile utilizzare un debugger, in genere è possibile eseguire "debug di stampa". È anche possibile con i modelli?
modifica: un altro modo di pensare a questo è qualcosa come il preprocessore C. È spesso molto utile generare un codice sorgente "preelaborato" - l'output dal preprocessore che il compilatore sta effettivamente compilando - questo ti permette di vedere quale effetto hanno i tuoi macronutrienti. Un modello equivalente sarebbe fantastico - fa in modo che il compilatore emetta il codice sorgente non-template che corrisponde all'inserimento basato su modello. Il più vicino che si possa ottenere suppongo sia un traduttore C++ in C. (Il compilatore di Comeau non lo fa?)
Ci sono alcuni strumenti ma non l'ho provato quindi non so davvero cosa fanno o quanto bene lo fanno. Puoi esaminare [TempLight] (https://github.com/sabel83/templight) o [metashell] (https://github.com/sabel83/metashell) –
Non riesco a rispondere alla domanda "passare attraverso" compilazione di template, ma per quanto riguarda il "debugging in stile printf", è possibile utilizzare le direttive del preprocessore per stampare commenti o avvertimenti personalizzati sull'output di build. http://stackoverflow.com/questions/3826832/is-there-a-portable-way-to-print-a-message-from-the-c-preprocessore – iwolf
Non proprio correlato: * Dopo * il tipo è stato dedotto , puoi usare 'typeid' per ottenere il suo nome (storpiato). – edmz