v3 flag enabled
Containers C++03
Added in 1.65.0

Boost.PolyCollection

Fast containers of polymorphic objects.

Dependencies

No dependencies

Contributors: This Release


Documentation

Boost PolyCollection library

develop branch    Build Status master branch    Build Status

Boost.PolyCollection: fast containers of polymorphic objects.

Online docs
Seminal article at bannalia.blogspot.com

Typically, polymorphic objects cannot be stored directly in regular containers and need be accessed through an indirection pointer, which introduces performance problems related to CPU caching and branch prediction. Boost.PolyCollection implements a novel data structure that is able to contiguously store polymorphic objects without such indirection, thus providing a value-semantics user interface and better performance. Three polymorphic collections are provided:

dealing respectively with classic base/derived or OOP polymorphism, function wrapping in the spirit of std::function and so-called duck typing as implemented by Boost.TypeErasure.

Requirements

Boost.PolyCollection is a header-only library. C++11 support is required. The library has been verified to work with Visual Studio 2015, GCC 5.2 and Clang 3.7.

Latest Boost.PolyCollection posts

Join the Boost Developers Mailing List

Get the latest on releases, features, security patches, fixes and all major announcements.

All Contributors