Compilatore che mostra il simbolo "pi" in caso di errore


103

Stavo testando del codice su Coliru e ho ottenuto uno strano output. Ho letto il codice e ho potuto riprodurlo con questo semplice pezzo di codice :

int main()
{
    π
}

L'output su g ++:

output su g ++

clang:

uscita su clang

Ad esempio, utilizzando solo pi(senza l'indirizzo di) mostra il risultato atteso:

main.cpp:3:5: error: 'pi' was not declared in this scope
    pi;
    ^

Ho provato a riprodurlo sulla mia macchina, usando g ++ 4.9.2 e su altri siti ma non ci sono riuscito.

È un bug su questo sito, qualche configurazione di questi compilatori?

E perché solo l'uso dell'operatore address-of ( &) mostra questo simbolo?


23
Cosa succede se ci metti &tm;? Ti fai vedere ™? In tal caso, l'output viene interpretato come HTML.
tadman

13
@tadman Secondo questo sito ™ non ha un codice "nome" HTML, solo un codice numerico HTML: & # 8482; Questo fornisce l' output atteso .
simon

53
ahaha questo è esilarante
Lightness Races in Orbit

4
@ Random832: Questo è ciò che ottengo sfogliando il DOM piuttosto che visualizzare la sorgente. (╯°□°)╯︵ ┻━┻
Gare di leggerezza in orbita il

3
Per la cronaca, molte persone che hanno commentato qui conoscono il manutentore di Coliru. Ora è a conoscenza del problema. Grazie per averlo sollevato.
Gare di leggerezza in orbita il

Risposte:


114

È un bug sul sito, poiché l'output del compilatore non è correttamente sottoposto a escape. Il compilatore dovrebbe generare l'output π, ma è HTML valido, che produce il simbolo pi che vedi.


possiamo avere una demo dal vivo da qualche parte come Coliru per mostrarlo? : P
thecoshman

9
E spesso la fuga dimenticata risulta essere un problema di sicurezza. Quindi, ogni volta che lo si incontra, è educato informarne l'amministratore del sito.
Kasperd

50

πè il codice html per π. Sembra che qualcuno si sia dimenticato di sfuggire alle cose correttamente.


8
700 e un distintivo d'oro. La cosa veramente spiacevole è che questo ragazzo avrebbe potuto usarlo molto più di me,
Puppy

3
@DavidRicherby - il rappresentante è sopravvalutato e non mette il cibo in tavola.
dtech
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.