Libreria standard C++: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riformulata sezione iniziale +fonti |
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(8 versioni intermedie di 3 utenti non mostrate) | |||
Riga 3:
La '''libreria standard C++''' è una [[libreria software]] definita nello standard ISO/IEC 14882, ovvero il [[C++|linguaggio di programmazione C++]]. Contiene molte funzionalità di utilizzo comune nella scrittura di programmi, e costituisce la principale libreria disponibile ai [[programmatore|programmatori]] C++.<ref name="open-std">{{cita web|url=https://www.open-std.org/JTC1/SC22/WG21/docs/standards#14882|titolo=C++ standards|lingua=en}}</ref>
La libreria è organizzata in diversi [[programmazione modulare|moduli]] tematici,
Le funzionalità offerte rientrano nelle seguenti aree: supporto al linguaggio base, rilevamento delle funzionalità, validazione concettuale, [[diagnostica (informatica)|diagnostica]], [[gestione della memoria]], [[metaprogrammazione]], [[stringa (informatica)|stringhe testuali]], [[struttura dati|strutture contenitore]], [[iteratore|iteratori]], supporto ai [[insieme|sottoinsiemi]], [[algoritmo|algoritmi generici]], [[elaborazione numerica]], [[tempo|grandezze temporali]], [[Localizzazione (sviluppo software)|localizzazione]], gestione di ''input/output'', [[espressione regolare|espressioni regolari]], supporto alle [[concorrenza (informatica)|operazioni concorrenti]]. Sono inoltre incluse tutte le funzionalità disponibili nella libreria standard del [[linguaggio C]] (ISO C99).<ref>{{cita web|url=https://en.cppreference.com/w/cpp|titolo=C++ standard library index|lingua=en}}</ref>
A differenza della [[libreria C]] tutte le funzionalità sono dichiarate all'interno del ''[[namespace]]'' riservato <code>std</code> e gli ''header'' non presentano un'[[estensione (informatica)|estensione]].<ref name="headers index"/>
==
{{...|informatica}}
== Implementazioni ==▼
Lo standard ISO definisce le funzionalità incluse nella libreria ma non offre alcuna implementazione di riferimento. Nel tempo sono quindi nate una varietà di implementazioni indipendenti. Le più conosciute sono quelle mantenute direttamente dai fornitori dei [[compilatore|compilatori]].
▲==Implementazioni==
{| class="wikitable sortable"
|+ Principali implementazioni della libreria standard C++
! Sito web || Nome esteso || Nome breve || Licenza
|-
| [[GNU]] C++ Standard Library
| libstdc++
| [[GNU General Public License|GPLv3]]
|-
| [https://libcxx.llvm.org/]
| [[LLVM]] C++ Standard Library
| libc++
| [[Licenza Apache|Apache v2.0]] with LLVM Exceptions
|-
| [[NVIDIA]] C++ Standard Library
| libcu++
| [[Licenza Apache|Apache v2.0]] with LLVM Exceptions
|-
| [[Microsoft]] C++ Standard Library
| MSVC STL
| [[Licenza Apache|Apache v2.0]] with LLVM Exceptions
|-
| [https://hpx.stellar-group.org/]
| HPX C++ Standard Library for Parallelism and Concurrency
| HPX
| [[Licenza Boost|Boost Software License 1.0]]
|-
| [[Electronic Arts]] Standard Template Library
| EASTL
| [[Licenza BSD|BSD 3-Clause]]
|-
| [http://www.dinkumware.com/] {{Webarchive|url=https://web.archive.org/web/20210211202233/http://www.dinkumware.com/ |date=11 febbraio 2021 }}
| Dinkum C++ Library
|
| Commerciale
|-
| [https://cug.org/]
| Cray C++ Standard Library
|
| Commerciale
|}
Line 99 ⟶ 112:
;{{codice|<algorithm>}}:Fornisce definitions of many container [[algorithm]]s.
;{{codice|<execution>}}:Fornisce execution policies for parallelized [[algorithms]].
;{{codice|<iterator>}}:Fornisce classes and templates for working with [[
;{{codice|<ranges>}}:Novità in [[C++20]]. Fornisce [[Range (computer programming)|ranges]] facilities and lazy evaluated adaptors.
Line 148 ⟶ 161:
;{{codice|<numeric>}}: Per le operazioni numeriche generalizzate.
==
{{Vedi anche|Libreria standard del C}}
La libreria standard C++ ricomprende le funzionalità classicamente disponibili nella libreria standard di [[C (linguaggio di programmazione)|ISO C99]]. Come per il resto anche questa parte è divisa in moduli, ricalcando la struttura della libreria originale. I nomi degli ''header'' sono ricavati da quelli originali, aggiungendo una <code>c</code> prefissa e rimuovendo l'estensione <code>.h</code>. Ad esempio, l{{'}}''header'' 'time.h' diventa 'ctime'.<ref name="cstdlib">{{cita web|url=https://en.cppreference.com/w/cpp/standard_library#C_standard_library|titolo=C standard library in C++}}</ref>
Questi ''header'' in molti casi includono internamente gli ''header'' C originali, con l'unica differenza che, ove possibile, le dichiarazioni ricadono nel namespace <code>std</code>.<ref name="cstdlib"/>
== Note ==
|