Wszystkie standardy C i C++ zawierają tekst mówiący o tym, że jeśli operacja łańcuchowa nie może wygenerować prawidłowego tokenu literowego, zachowanie jest niezdefiniowane. W C++ 11 jest to faktycznie możliwe, poprzez dodanie znaku nowego wiersza w surowym słowie kluczowym. Ale w standardach zawsze tkwił haczyk.Niepoprawna operacja ciągów znaków
Czy istnieje inny sposób, w jaki sznurka może produkować UB, gdzie UB lub źle sformułowany program jeszcze się nie stało?
Chciałbym usłyszeć o dowolnym dialekcie C lub C++ w ogóle. Jestem writing preprocesorem.
Większość ludzi zmaga się, aby zmusić ich do pracy, a nie nie zdać. –
Hah ... Chciałbym sprawdzić, czy błąd działa, tj. Dostać test. Sztuczka z nowymi liniami nie pomaga, ponieważ przechwytuję pułapkę i dodam '\ n'. (Cóż, to jest '' \\\\ n "' jeśli liczą się backsliski.) – Potatoswatter
OK, wtedy nie dostałem tego, o co prosisz, potrzebujesz preprocesorów testowych. mcpp ma pakiet sprawdzania poprawności. –