Remove ads
Da Wikipedia, l'enciclopedia libera
La libreria standard C++ è una libreria software definita nello standard ISO/IEC 14882, ovvero il linguaggio di programmazione C++. Contiene molte funzionalità di utilizzo comune nella scrittura di programmi, e costituisce la principale libreria disponibile ai programmatori C++.[1]
La libreria è organizzata in diversi moduli tematici, ognuno dei quali raggruppa classi e 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.[2]
Le funzionalità offerte rientrano nelle seguenti aree: supporto al linguaggio base, rilevamento delle funzionalità, validazione concettuale, diagnostica, gestione della memoria, metaprogrammazione, stringhe testuali, strutture contenitore, iteratori, supporto ai sottoinsiemi, algoritmi generici, elaborazione numerica, grandezze temporali, localizzazione, gestione di input/output, espressioni regolari, supporto alle operazioni concorrenti. Sono inoltre incluse tutte le funzionalità disponibili nella libreria standard del linguaggio C (ISO C99).[3]
A differenza della libreria C tutte le funzionalità sono dichiarate all'interno del namespace riservato std
e gli header non presentano un'estensione.[2]
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 compilatori.
Sito web | Nome esteso | Nome breve | Licenza |
---|---|---|---|
GNU C++ Standard Library | libstdc++ | GPLv3 | |
LLVM C++ Standard Library | libc++ | Apache v2.0 with LLVM Exceptions | |
NVIDIA C++ Standard Library | libcu++ | Apache v2.0 with LLVM Exceptions | |
Microsoft C++ Standard Library | MSVC STL | Apache v2.0 with LLVM Exceptions | |
HPX C++ Standard Library for Parallelism and Concurrency | HPX | Boost Software License 1.0 | |
Electronic Arts Standard Template Library | EASTL | BSD 3-Clause | |
Archiviato l'11 febbraio 2021 in Internet Archive. | Dinkum C++ Library | Commerciale | |
Cray C++ Standard Library | Commerciale |
I file seguenti contengono le dichiarazioni della libreria standard C++.
<any>
std::any
.<atomic>
std::atomic
, le sue diverse specializzazioni di modelli e più operazioni atomiche.<chrono>
std::chrono::duration
, std::chrono::time_point
e orologi. A partire da C++20, le novità aggiunte sono calendari, fusi orari, nuovi orologi e stringhe di formattazione per orari e intervalli.<concepts>
<functional>
<memory>
std::unique_ptr
.<memory_resource>
<scoped_allocator>
std::scoped_allocator_adaptor
.<stdexcept>
std::logic_error
and std::runtime_error
, both derived from std::exception
.<system_error>
std::error_code
<optional>
std::optional
per i tipi opzionali.<stacktrace>
<tuple>
std::tuple
, una tupla.<type_traits>
<utility>
std::pair
(two-member tuples), compile-time integer sequences, helpers in constructing vocabulary types, functions such as std::move
and std::forward
, and many more. The namespace std::rel_ops
for automatically generating comparison operators is deprecated in C++20 in favor of new defaulted comparison operators.<variant>
std::variant
, a tagged union type.<compare>
<coroutine>
<exception>
std::exception
, the base class of all exceptions thrown by the Standard Library.<initializer_list>
<limits>
std::numeric_limits
, used for describing properties of fundamental numeric types.<new>
new
e delete
oltre che altre funzioni e tipi, i quali compongono i fondamenti della gestione della memoria in C++.<source_location>
__LINE__
.<typeinfo>
<version>
<array>
std::array
, a container for a fixed sized array.<bitset>
std::bitset
, a bit array.<deque>
std::deque
, a double-ended queue.<forward_list>
std::forward_list
, a singly linked list.<list>
std::list
, a doubly linked list.<map>
std::map
and std::multimap
, sorted associative array and multimap.<queue>
std::queue
, a single-ended queue, and std::priority_queue
, a priority queue.<set>
std::set
and std::multiset
, sorted associative containers or sets.<span>
std::span
, a mutable non-owning view that refers to any contiguous range.<stack>
std::stack
, a stack.<unordered_map>
std::unordered_map
and std::unordered_multimap
, hash tables.<unordered_set>
std::unordered_set
and std::unordered_multiset
.<vector>
std::vector
, a dynamic array.<algorithm>
<execution>
<iterator>
<ranges>
<locale>
<codecvt>
<charconv>
<format>
std::format
.<string>
<string_view>
std::basic_string_view
, an immutable non-owning view to any string.<regex>
<filesystem>
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
std::istream
e altre classi di support per l'input.<ostream>
std::ostream
e altre classi di supporto per l'output.<spanstream>
std::spanstream
and other fixed character buffer I/O streams.<sstream>
std::stringstream
and other supporting classes for string manipulation.<streambuf>
<syncstream>
std::osyncstream
and other supporting classes for synchronized output streams.<barrier>
std::barrier
, a reusable thread barrier.<condition_variable>
<future>
<latch>
std::latch
, a single-use thread barrier.<mutex>
<shared_mutex>
<semaphore>
<stop_token>
<thread>
Components that C++ programs may use to perform seminumerical operations.
<bit>
<complex>
std::complex
, and numerous functions for representing and manipulating complex numbers.<numbers>
std::numbers
.<random>
<ratio>
<valarray>
std::valarray
, std::slice_array
, std::gslice_array
, std::mask_array
, and std::indirect_array
), two classes (std::slice
and std::gslice
), and a series of related function templates for representing and manipulating arrays of values.<numeric>
La libreria standard C++ ricomprende le funzionalità classicamente disponibili nella libreria standard di 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 c
prefissa e rimuovendo l'estensione .h
. Ad esempio, l'header 'time.h' diventa 'ctime'.[6]
Questi header in molti casi includono internamente gli header C originali, con l'unica differenza che, ove possibile, le dichiarazioni ricadono nel namespace std
.[6]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.