Technical Report 1 (TR1) to zbiór proponowanych rozszerzeń do biblioteki standardowej C++, takich jak wyrażenia regularne, sprytne wskaźniki, tablice haszujące i generatory liczb losowych. TR1 nie jest jeszcze ustandaryzowany, ale prawdopodobnie stanie się w dzisiejszej formie częścią następnego oficjalnego standardu C++. W tym czasie twórcy narzędzi mogą pomocniczo używać tego dokumentu.

TR1 to nie wszystkie rozszerzenia do biblioteki standardowej które będą dostępne w następnym standardzie; dla przykładu następny standard, C++0x, może zawierać obsługę dla wątków. Istnieje też drugi Technical Report, TR2 planowany do opublikowania po C++0x.

Nowe komponenty znajdują się w przestrzeni nazw std::tr1 aby oddzielić je od obecnej biblioteki standardowej.

Komponenty Generalne narzędzia Reference Wrapper przeniesiony z Boost.Ref dodatki do pliku nagłówkowego <functional> - cref, ref, reference_wrapper umożliwia przekazywanie do algorytmów i funktorów referencji, zamiast kopii Sprytne wskaźniki oparte na bibliotece Boost Smart Pointer dodatki do pliku nagłówkowego <memory> - shared_ptr, weak_ptr itd. narzędzie do zarządzania pamięcią umożliwiające odporność na wyjątki, z użyciem idiomu Resource Acquisition Is Initialization (RAII). Funktory Cztery moduły dodane do nagłówka <functional>: Polymorphic Function Wrapper function oparty na Boost.Function przechowuje wszystkie typy dające się wywołać (wskaźnik do funkcji, wskaźnik do funkcji składowej, funktor) mające podaną sygnaturę wywołania funkcji. nie jest wymagane podanie konkretnego typu obiektu dającego się wywołać. Function Object Binders bind skopiowany z biblioteki Boost Bind zgeneralizowana wersja standardowego std::bind1st i std::bind2nd binduje parametry do funktorów i pozwala na złożenie funkcji Function Return Types result_of skopiowany z Boost ustala typ wyrażenia wywołania mem_fn mem_fn oparte na bibliotece Boost Mem Fn dodatek do standardowych std::mem_fun i std::mem_fun_ref pozwala na traktowanie wskaźników do funkcji składowych jako funktorów Metaprogramming and Type Traits nowy plik nagłówkowy <type_traits> - is_pod, has_virtual_destructor, remove_extend, itd. oparty na bibliotece Boost Type Traits umożliwia metaprogramowanie pozwalając na zapytania i konwersje między różnymi typami

Narzędzia numeryczne Generowanie liczb losowych nowy plik nagłówkowy <random> - variate_generator, mersenne_twister, poisson_distribution, itd. narzędzia do generowania liczb losowych z użyciem różnych silników i rozkładów prawdopodobieństwa

Funkcje matematyczne dodatki do plików nagłówkowych <cmath>/<math.h> - beta, legendre, itd. funkcje matematyczne

Kontenery Krotki nowy plik nagłówkowy <tuple> oparty na bibliotece Boost Tuple rozszerzenie standardowego std::pair stałego rozmiaru kolekcje elementów mogących mieć różne typy Tablica stałego rozmiaru nowy plik nagłówkowy <array> pobrany z biblioteki Boost Array w przeciwieństwie do dynamicznych typów tablicowych takich jak standardowy std::vector Tablica haszująca nowe pliki nagłówkowe <unordered_set>, <unordered_map> nowa implementacja, nie oparta na istniejącej bibliotece, z api nie do końca kompatybilnym z istniejącymi bibliotekami tak jak wszystkie tablice haszujące zwykle umożliwia dostęp do elementów w czasie stałym, a w najgorszym przypadku w czasie liniowym do rozmiaru pojemnika

Wyrażenia regularne nowy plik nagłówkowy <regex> - regex, regex_match, regex_search, regex_replace, itd. oparte na bibliotece Boost RegEx Kompatybilność z C TR1 próbuje poprzez różne dodatki do plików nagłówkowych z C++, takich jak <complex>, <locale>, <cmath> przybliżyć C++ do wersji C99 standardu C. (nie wszystkie części C99 są dostępne w TR1).

Zobacz też Boost, zbiór przenośnych bibliotek dla języka C++, wiele z nich znajduje się w TR1. Standard Template Library, część obecnej biblioteki standardowej C++ Dinkumware, jedyny komercyjny dostawca w pełni implementujący TR1

Kategoria:C++