Il sovraccarico dell'operatore è supportato in C

3

Quando ho letto del compilatore LCC (Windows), ho scoperto che ha l'implementazione per il sovraccarico dell'operatore.

Tuttavia, dopo un po 'di ricerca su Google, ho confermato che il sovraccarico dell'operatore non è supportato nello standard C, sebbene il commento di qualcuno menzionato LCC sia conforme ANSI.

LCC è veramente standard C o è proprio come l'obiettivo-c, una variante C con funzionalità orientate agli oggetti?

    
posta caramel1995 04.09.2012 - 17:35
fonte

5 risposte

2

No, è un'estensione. Puoi avere estensioni a condizione che non siano in conflitto con lo standard.

    
risposta data 04.09.2012 - 17:41
fonte
0

Molti compilatori dichiarano di essere conformi ad alcuni standard o altro e quindi di abilitare le proprie estensioni private per impostazione predefinita. Finché si disabilitano abbastanza estensioni, in genere è possibile ottenere un compilatore in una modalità "conforme" ad alcuni standard.

L'unica funzionalità C che si avvicina in remoto all'overloading è macro generiche di tipo limitato di <tgmath.h> in C99 e espressioni di selezione generiche in C11 come indicato su questo sito .

    
risposta data 04.09.2012 - 17:40
fonte
0

C11 non supporta il sovraccarico dell'operatore. I compilatori possono implementare le proprie funzionalità specifiche del fornitore, ma quelli non fanno parte dello standard C e in quanto tali non sono conformi allo standard.

    
risposta data 04.09.2012 - 17:41
fonte
0

È comune per i compilatori supportare un superset di uno standard e descriversi come conformi.

Fintanto che gestiscono un codice conforme allo standard, in quanto lo standard afferma che dovrebbero essere conformi. Molti compilatori hanno un flag a riga di comando che può essere attivato per trattare il codice in modo più rigoroso, rifiutando il codice che fa uso di funzionalità non standard. Immagino che LCC avrà una tale bandiera.

    
risposta data 04.09.2012 - 17:47
fonte
0

Mi sembra che gli autori di LCC non rivendichino la conformità ANSI C, ma come suggerito nella tua domanda, hanno reso le loro estensioni di supporto del compilatore al linguaggio C.

"Questo documento propone quindi lo sviluppo di numerosi miglioramenti alla lingua, per lo più compatibile con le loro controparti C ++. L'obiettivo principale è quello di fare la programmazione in C più facile, più sicuro e più flessibile di adesso. "

link

L'overloading dell'operatore è sicuramente non parte di ANSI C.

    
risposta data 01.10.2012 - 06:14
fonte

Leggi altre domande sui tag