Code Monkey home page Code Monkey logo

hashing-demo's Introduction

#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.

hashing-demo's People

Contributors

chandlerc avatar geoffromer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.