Gli standard C e C++ includono tutti il testo per l'effetto che se un'operazione di stringa non riesce a produrre un token letterale stringa valido, il comportamento non è definito. In C++ 11 questo è effettivamente possibile, includendo un carattere di nuova riga in una stringa raw letterale. Ma il catch-all è sempre stato presente negli standard.Stringize operator failure
C'è qualche altro modo in cui la stringa può produrre UB, dove UB o un programma mal formato non è ancora successo?
Sarei interessato a conoscere qualsiasi dialetto di C o C++ qualunque. Sono writing un preprocessore.
La maggior parte delle persone fa fatica a farli lavorare, non fallire. –
Hah ... Vorrei verificare che il fallimento funzioni, cioè ottenere una prova. Il trucco con le newline non aiuta perché lo intrappolo e aggiungo un '\ n'. (Bene, è un '" \\\\\ "" se stai contando i backslash.) – Potatoswatter
Ok, allora non ho ottenuto quello che stai chiedendo, hai bisogno di test del preprocessore. mcpp ha una suite di convalida. –