Files
openttd/src/3rdparty/cpp-btree
Jonathan G Rennison 7690fe8572 cpp-btree: Update to match upstream
minor optimization: minimize calls to end()

Minor optimization: increase the chances that the compiler will inline calls to end().
Has been observed to make a difference with gcc 4.9.3.

Fix build and warnings on MSVC (2017)
Uses static_assert, a C++11 feature. Also adds some explicit uses of
static_cast in order to suppress warnings about lossy type conversion.
2018-11-01 18:54:24 +00:00
..
2018-11-01 18:54:24 +00:00

This library is a C++ template library and, as such, there is no
library to build and install.  Copy the .h files and use them!

See http://code.google.com/p/cpp-btree/wiki/UsageInstructions for
details.

----

To build and run the provided tests, however, you will need to install
CMake, the Google C++ Test framework, and the Google flags package.

Download and install CMake from http://www.cmake.org

Download and build the GoogleTest framework from
http://code.google.com/p/googletest

Download and install gflags from https://code.google.com/p/gflags

Set GTEST_ROOT to the directory where GTEST was built.
Set GFLAGS_ROOT to the directory prefix where GFLAGS is installed.

export GTEST_ROOT=/path/for/gtest-x.y
export GFLAGS_ROOT=/opt

cmake . -Dbuild_tests=ON

For example, to build on a Unix system with the clang++ compiler,

export GTEST_ROOT=$(HOME)/src/googletest
export GFLAGS_ROOT=/opt
cmake . -G "Unix Makefiles" -Dbuild_tests=ON -DCMAKE_CXX_COMPILER=clang++

----

Note that this is a modified version of the original at http://code.google.com/p/cpp-btree

Changes include:
- Changing size_type from ssize_t to size_t, remove remaining uses of ssize_t
- Adding cbegin, cend, crbegin, crend.
- Adding key_comp
- Adding move constructors/assignment.
- No longer #define NDEBUG if unset, this can clash with other headers, test for BTREE_DEBUG being defined instead

CMakeLists-pthreads-fix.txt is a modified copy of CMakeLists.txt which includes -lpthreads when building the tests/benchmarks.
Using this instead fixes compilation on some platforms.