Libreria standard C++: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
traduzione parziale, corr.ne refusi |
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(12 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
{{S|
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, ognuno dei quali raggruppa [[classe (informatica)|classi]] e [[funzione (informatica)|funzioni]] utili ad affrontare una determinata tipologia di problemi. Ogni modulo comprende uno o più ''[[header file]]'', che possono essere utilizzati per includere selettivamente le funzionalità della libreria all'interno di un programma.<ref name="headers index">{{cita web|url=https://en.cppreference.com/w/cpp/header|titolo=C++ standard library headers|lingua=en}}</ref>
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>
== Esempi ==▼
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
|}
Riga 76 ⟶ 92:
;{{codice|<source_location>}}:Novità in [[C++20]]. Fornisce capturing source ___location information as alternative to predefined macros such as <code>__LINE__</code>.
;{{codice|<typeinfo>}}:Fornisce facilities for working with C++ [[run-time type information]].
;{{codice|<version>}}:Novità in [[C++20]]. Fornisce informazioni riguardo l'implementazione corrente della libreria standard C++.<ref>{{Cita web|data=1º aprile 2020|titolo=Working Draft, Standard for Programming Language C++|url=http://open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4861.pdf|lingua=en|accesso=30 aprile 2021
===Strutture dati===
Riga 96 ⟶ 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.
Riga 145 ⟶ 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 ==
Riga 154 ⟶ 173:
== Voci correlate ==
*[[Libreria standard del C]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|url=https://en.cppreference.com/w/cpp/standard_library|titolo=Libreria standard del C++|lingua=en|cid=cppref}}
* {{cita web|url=https://gcc.gnu.org/wiki/Libstdc++|titolo=C++ Standard Library (libstdc++)|lingua=en}}
* {{cita web|url=https://libcxx.llvm.org/|titolo=C++ Standard Library (libc++)¶|lingua=en|cid=libc++}}
{{C++}}
|