Git Product home page Git Product logo

multi_index's Introduction

multi_index

BoostLess MultiIndex, for a C++11 compiler.

Build Status Build Status Build status

Table of Contents

Introduction

Boost, although a great library, aims to maintain compatibility with as many compilers as possible, with workarounds for the buggiest of systems. These abstractions have a cost, and now that C++11 compilers are available for every major system, most of the Boost machinery is now more trouble than it's worth.

Boost.MultiIndex is an excellent library, with use for modern code, however, it depends on archaic machinery. Removing this machinery to use variadic templates removes ~140,000 lines of code, and dramatically improves compilation time and memory, simplifying its integration in a modern development environment.

Changes

This fork aims to maintain as much compatibility with the original implementation as possible. Only a few, significant changes were made:

  • Removing the Boost namespace to avoid inclusion/compatibility issues with other Boost libraries.
  • Removing Boost.MPL to use Brigand and std::tuple.

Documentation

The documentation, with the exception of the Boost namespace, should be identical to Boost's reference.

Platforms

MultiIndex is continually built with the following compiler and compiler versions:

  • Clang 3.8+
  • GCC 5.3+
  • MinGW 5.3.0 (MXE, MinGW, and MSYS2)
  • Visual Studio 14 2017

Visual Studio 2015 has various bugs with nested templates, and is therefore not supported. These bugs are fixed in Visual Studio 2017.

Contributors

  • Alex Huszagh

MultiIndex is forked from Boost's implementation, and shares nearly all of its code from it. Joaquin M Lopez Munoz is the author of the Boost implementation, and therefore of the nearly all of the source code, although he is unaffilitated with the fork.

License

Boost, see license.

multi_index's People

Contributors

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