# Opera Template Library

Copyright © 2012 Opera Software ASA. All rights reserved. This file is part of the Opera web browser. It may not be distributed under any circumstances.

## Introduction

The Opera Template Library (OTL) aims to provide STL-like containers in Core.

OTL templates are different from most other container classes in Core, because they can contain any value, not only pointers. For instance, if you were to instantiate `OtlVector<int>`, you would get a "true" vector of `int`s, and not a vector of `int*`.

## Templates

The following templates are currently implemented:

- OtlVector – Dynamically growing array-like container.
- OtlDeque – Double-ended queue, fast insertion in both ends.
- OtlStack – A restricted type of OtlVector.
- OtlList – Doubly-linked list.
- OtlSet – Sorted set with unique elements.
- OtlMap – Sorted, associative container.
- OtlPair – Pair of two elements of arbitrary type.

Planned:

- Hash tables

The generated documentation has code examples, and an overview of the templates in general.