Go to file
2017-06-22 23:38:29 +02:00
doc used QuickBook custom URL schema also for links to code 2017-06-22 23:38:29 +02:00
example reworded and expanded on the description of boost::function_collection to address reviewers' concerns about clarity and purpose 2017-06-14 21:40:33 +02:00
include/boost/poly_collection used swap rather than move assignment on index shrinking 2017-06-22 17:43:12 +02:00
meta initial commit 2016-11-06 11:17:58 +01:00
test omitted test when https://connect.microsoft.com/VisualStudio/feedback/details/3136309 2017-06-22 00:29:46 +02:00
.gitattributes added .gitattributes 2017-06-01 08:39:19 +02:00
.travis.yml provided the -std=c++11 flag just dropped from jamfile 2017-06-04 10:52:47 +02:00
index.html fixed redirection URL 2017-06-05 23:48:45 +02:00
README.md relinked from joaquintides to boostorg 2017-06-01 08:49:04 +02:00

Boost PolyCollection library

develop branch    Build Status master branch    Build Status

Warning: Boost.PolyCollection has been accepted into Boost but it is yet to be released as part of an official Boost distribution.

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

  • A compiler with C++11 support. The library has been tested with Visual Studio 2015, GCC 5.2.1 and Clang 3.7.
  • A reasonably recent version of Boost.