STL/CLR Library Reference

The STL/CLR Library is a packaging of a subset of the C++ Standard Library for use with C++ and the .NET Framework common language runtime (CLR). With STL/CLR, you can use all the containers, iterators, and algorithms of the standard library in a managed environment.

To use STL/CLR:

  • Include headers from the cliext include subdirectory instead of the usual C++ Standard Library equivalents.

  • Qualify library names with cliext:: instead of std::.

    STL/CLR exposes the generic types and interfaces that it uses in cross-assembly scenarios in the .NET assembly Microsoft.VisualC.STLCLR.dll. This DLL is included in .NET Framework 3.5. If you redistribute an application that uses STL/CLR, you will need to include the .NET Framework 3.5, as well as any other Visual C++ libraries that your project uses, in the dependencies section of your setup project.

In This Section

cliext Namespace
Discusses the namespace that contains all the types of the STL/CLR Library.

STL/CLR Containers
Provides an overview of the containers that are found in the C++ Standard Library, including requirements for container elements, types of elements that can be inserted, and ownership issues.

Requirements for STL/CLR Container Elements
Describes minimum requirements for all reference types that are inserted into C++ Standard Library containers.

How to: Convert from a .NET Collection to a STL/CLR Container
Describes how to convert a .NET collection to an STL/CLR container.

How to: Convert from a STL/CLR Container to a .NET Collection
Describes how to convert an STL/CLR container to a .NET collection.

How to: Expose an STL/CLR Container from an Assembly
Shows how to display the elements of several STL/CLR containers written in a C++ assembly.

In addition, this section also describes the following components of STL/CLR:

adapter (STL/CLR) algorithm (STL/CLR)
deque (STL/CLR) for each, in
functional (STL/CLR) hash_map (STL/CLR)
hash_multimap (STL/CLR) hash_multiset (STL/CLR)
hash_set (STL/CLR) list (STL/CLR)
map (STL/CLR) multimap (STL/CLR)
multiset (STL/CLR) numeric (STL/CLR)
priority_queue (STL/CLR) queue (STL/CLR)
set (STL/CLR) stack (STL/CLR)
utility (STL/CLR) vector (STL/CLR)

See Also

C++ Standard Library