Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

#Introduction

This is a sample implementation of a forthcoming C++ standard library proposal. It is intended only for demonstration and evaluation purposes, and is not suitable for use in production systems. This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

The APIs in std.h and std_impl.h are proposed for standardization. fnv1a.h and farmhash.h are example implementations of particular algorithms using this framework, but are not themselves proposed for standardization. std_test.cc shows some simple examples of the extension API for type owners, as well as the end-user API (which is just std::hash).

The code uses some C++14 language and library features. It doesn't work with libstdc++ as of version 4.8, but it does work with libc++ 3.4. A CMakeLists.txt is included for building the tests with CMake. Example usage:

$ cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++-libc++ $SOURCE_DIR
$ make
$ make test

The tests depend on GoogleTest, which must be provided separately. By default, CMake will expect to find the GoogleTest source in /usr/src/gtest and the headers in a default include path, but these can be configured with -Dgtest_src_dir and -DCMAKE_INCLUDE_PATH, respectively. Similarly, the benchmarks depend on google/benchmark. This is included as a git submodule (run git submodule init; git submodule update to set it up), or you can install the source distribution in another location, and configure that location with -Dbenchmark_src_dir.

API documentation will be provided in the forthcoming paper.

About

Sample implementation of a proposed C++ hashing framework

Resources

License

Releases

No releases published

Packages

No packages published