C++ Technical Report 1

The additions include regular expressions, smart pointers, hash tables, and random number generators.

The report's goal was "to build more widespread existing practice for an expanded C++ standard library".

The new components were defined in the std::tr1 namespace to distinguish them from the then-current standard library.

Wrapper references are useful above all for template functions, when argument deduction would not deduce a reference (e.g. when forwarding arguments): Smart pointers – adds several classes that simplify object lifetime management in complex cases.

Three main classes are added: The proposal is based on Boost Smart Pointer library.

[6] Some features of TR1, such as the mathematical special functions and certain C99 additions, are not included in the Visual C++ implementation of TR1.

For example: C++ is designed to be compatible with the C programming language, but is not a strict superset of C due to diverging standards.

TR1 attempts to reconcile some of these differences through additions to various headers in the C++ library, such as , , , etc.

Some of the proposals listed above are already included in the C++ standard or in draft versions of the Technical Specifications.