The C++ Compass

The C++ Compass
>FAQ<

FAQ

Home
Home

Risorse
Risorse

Utilities
Utilities

Compilatori
Compilatori

GUI Toolkits
GUI Toolkits

Libri
Libri

Download
Download

FAQ
FAQ



whoami
Who am I
[Precedente] [Indice] [Successiva]


[Varie]


Perchè non è possibile fare l'overload di funzioni che differiscono solo per il tipo di valore restituito ?

Una "scelta di progetto" del creatore del linguaggio, che, vista la complessità veramente astrusa della risoluzione degli overload in linguaggi che l'ammettevano anche in base al tipo di ritorno, come (in qualche misura) Ada e PL/I, decise di non ammetterla.
La decorazione sulla base del tipo ritornato non è un problema (alcuni compilatori C++ infatti la implementano comunque, per potere aiutare nella diagnosi dell'errore "funzioni che differiscono solo sul tipo di ritorno"); il problema è invece che già oggi le regole di risoluzione di overload sono sin troppo complesse (se non si progettano le cose limitando al minimo assoluto i fattori di complicazione, come i vari operatori di conversione, costruttori a un solo argomento senza explicit, ecc ecc, non è raro ricevere sorprese su quale di tanti overload il compilatore finisca per scegliere applicando precisamente le regole...) -- ammettendo anche l'overload sul tipo di ritorno, le sorprese diverrebbero più frequenti di un ordine di grandezza.




Ultimo aggiornamento : 03/07/2000

email webmaster@thecppcompass.org