C++: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Stile di programmazione |
Aggiornata sezione sui compilatori |
||
Riga 69:
=== Compilatori ===
Esistono svariati [[compilatori]] per C++<ref>{{Cita web|lingua=en|url=https://isocpp.org/get-started|titolo=Get Started!|accesso=23 aprile 2025}}</ref> che supportano lo standard a diversi livelli di completezza<ref>{{Cita web|lingua=en|url=https://en.cppreference.com/w/cpp/compiler_support|titolo=C++ compiler support|accesso=23 aprile 2025}}</ref>. Tra i progetti [[Software libero|free software]]/[[open source]], esistono [[GNU Compiler Collection|GCC]]<ref>{{Cita web|lingua=en|url=https://gcc.gnu.org/|titolo=GCC, the GNU Compiler Collection|accesso=23 aprile 2025}}</ref> (supporta numerose combinazioni di [[Sistema operativo|sistemi operativi]] e [[Instruction set|architetture]]) e [[Clang]]<ref>{{Cita web|lingua=en|url=https://clang.llvm.org/|titolo=Clang: a C language family frontend for LLVM|accesso=23 aprile 2025}}</ref> (a sua volta disponibile per molte piattaforme diverse, tra cui una versione per [[MacOS]] inclusa nell'[[Ambiente di sviluppo integrato|IDE]] [[Xcode|XCode]]<ref>{{Cita web|lingua=en|url=https://developer.apple.com/xcode/|titolo=Xcode|accesso=23 aprile 2025}}</ref> di [[Apple]]). Esistono inoltre implementazioni [[Software proprietario|proprietarie]] come [[VisualC++|Visual C++]]<ref>{{Cita web|url=https://visualstudio.microsoft.com/it/vs/features/cplusplus/|titolo=Visual Studio IDE C/C++ e compilatore per Windows|accesso=23 aprile 2025}}</ref> per [[Microsoft Windows]], [[NVIDIA|Nvidia]] HPC C++<ref>{{Cita web|lingua=en|url=https://developer.nvidia.com/hpc-sdk|titolo=NVIDIA HPC SDK|accesso=23 aprile 2025}}</ref> e [[Hewlett Packard Enterprise|HPE]] Cray CCE<ref>{{Cita web|lingua=en|url=https://cpe.ext.hpe.com/docs/latest/cce/index.html#cce|titolo=Cray Compiler Environment|accesso=23 aprile 2025}}</ref>. Svariate versioni di compilatori basate su Clang/[[LLVM]] sono disponibili da compagnie come [[IBM]] con [[XL C/C++]]<ref>{{Cita web|lingua=en|url=https://www.ibm.com/products/c-and-c-plus-plus-compiler-family|titolo=IBM C and C++ Compiler Family|accesso=23 aprile 2025}}</ref> (per [[AIX (sistema operativo)|AIX]], Linux, [[z/OS]], [[IBM Z|z/VM]]), [[Intel]] con oneAPI DPC++/C++ Compiler<ref>{{Cita web|lingua=en|url=https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html|titolo=oneAPI DPC++/C++ Compiler|accesso=23 aprile 2025}}</ref> e [[Embarcadero Technologies|Embarcadero]] C++ Compiler<ref>{{Cita web|lingua=en|url=https://www.embarcadero.com/free-tools/ccompiler|titolo=C++ Compiler|accesso=23 aprile 2025}}</ref>.
Lo standard del C++ non specifica l'implementazione della [[decorazione dei nomi]], della [[gestione delle eccezioni]] e altre funzioni specifiche dell'implementazione, e ciò rende incompatibile il [[codice oggetto]] prodotto da compilatori diversi. Ci sono però standard di terze parti per particolari macchine o sistemi operativi che cercano di standardizzare i compilatori per tali piattaforme, ad esempio l'ABI per C++<ref>{{Cita web|url=https://mentorembedded.github.io/cxx-abi/|titolo=C++ ABI|sito=mentorembedded.github.io|accesso=7 maggio 2018}}</ref>, e successivamente molti compilatori hanno standardizzato questi elementi.
|