E' un mio mezzo-debug che faccio in fase di test con l'output su console.
Capita spesso di trovare stampe su console strane (ad esempio, non vedi nulla in console dopo una stampa) e ti chiedi "perchè? sarà una stringa vuota? sarà una stringa che contiene un solo carattere di spaziatura, tipo spazio o tab?".
Utilizzando il carattere '|' sia prima che dopo la stringa, sai con buona sicurezza cosa c'è al suo interno.

Per dirne una, prima, mentre facevo i test sul tuo programma (nel primo test non usavo ancora la parse, scrivevo solo con cout << "|" << num << "|" << endl;), in output ho letto qualcosa come:

codice:
.
.
|-23
5|
.
.
Mi sono subito accorto di essermi dimenticato del carattere di newline, che veniva incluso nella stringa dunque.
Se non avessi usato le pipe probabilmente non mi sarei accorto subito dell'errore, con tutte le conseguenze del caso (in particolare, non sarei riuscito a ottenere il numero "5", in quanto lo stringstream avrebbe incontrato '\n' all'interno della stringa e si sarebbe fermato, ritornandomi solo "-23")