PLF C++ Library

PLF is a collection of library modules for C++. Please click on the links below to learn more about the different modules and to download. All modules (except timsort) are under a permissive Zlib license and support C++98/03/11/14/17. Tested compilers include Clang 3.71-6.0, GCC 4.6-8.1 (32-bit and 64-bit) and MS Visual C++ 2010-2017.

blog - A random collection of thoughts, assembled and poorly filtered through cognitive biases and subjective aesthetics, resulting in a distortion of perspective.

plf::colony - An unordered data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements.

plf::list - A data container replicating std::list functionality but with (on average) 333% faster insertion, 81% faster erasure and 16% faster iteration.

plf::stack - A data container replicating std::stack functionality but with better performance than standard library containers in a stack context.

plf::nanotimer - A cross-platform lowest-overhead microsecond-precision timer for simple benchmarking on Linux/BSD/Windows/Mac.

plf::timsort - A fork of GFX's timsort function - will be used internally by colony and list (instead of std::sort) if included in the project prior.

advanced jump-counting skipfield pattern - A skipfield pattern which avoids branching during iteration. Used by colony.


The following talk entitled "Colonies, performance and why you should care" was presented at CPPcon 2016:

The slides for the talk are available here.

The following talk entitled "Can we make a faster linked list?" was presented at PacifiC++ 2017:

The slides for the talk are available here.

Contact: footer
plf:: library and this page Copyright (c) 2018, Matthew Bentley