joaquintides f6aae2880f SFINAEd fixed_variant relational operators (#33)
* updated CI
* SFINAEd fixed_variant's relational operators
* updated docs
* stylistic
* updated release notes
* reformulated to try to make VS 2015/2017 pass
* reverted, tried dropping convertible_to_bool
* reverted, used CWG1558-resistent local impl of mp_valid
* added missing ::type
* used battle-tested Boost type traits
* stylistic
2026-07-16 20:34:06 +02:00
2024-10-13 12:55:03 +02:00
2024-12-28 10:56:06 +01:00
2021-01-12 19:16:12 +01:00
2017-06-01 08:39:19 +02:00
2025-06-21 18:14:40 +02:00
2021-05-28 01:46:19 +03:00
2017-06-05 23:48:45 +02:00

Boost PolyCollection library

Branch CI Drone status Build status Deps Documentation Enter the Matrix
Branch CI Drone status Build status Deps Documentation Enter the Matrix
BSL 1.0 C++11 required Header-only library

Boost.PolyCollection: fast containers of polymorphic objects.

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. Four polymorphic collections are provided:

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

Learn about Boost.PolyCollection

Install Boost.PolyCollection

  • Download Boost and you're ready to go (this is a header-only library requiring no building).
  • Using Conan 2: In case you don't have it yet, add an entry for Boost in your conanfile.txt (the example requires at least Boost 1.86):
[requires]
boost/[>=1.86.0]
    If you're not using any compiled Boost library, the following will skip building altogether:
[options]
boost:header_only=True
  • Using vcpkg: Execute the command
vcpkg install boost-poly-collection

Support

Contribute

S
Description
No description provided
Readme 3.8 MiB
Languages
C++ 99.3%
Shell 0.2%
CMake 0.2%
Batchfile 0.2%
HTML 0.1%