From 7c299a267f82f355dd6de479377dacb2bdc1abe5 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 7 Jun 2017 00:31:06 +0300 Subject: [PATCH] Update README.md --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index db3942d..73a9801 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,49 @@ -# mp11, a simple C++11 metaprogramming library +# Mp11, a C++11 metaprogramming library -For background, please see the article ["Simple C++11 metaprogramming"](http://pdimov.com/cpp2/simple_cxx11_metaprogramming.html). +Mp11 is a C++11 metaprogramming library based on template aliases and variadic templates. +It implements the approach outlined in the article +["Simple C++11 metaprogramming"](http://pdimov.com/cpp2/simple_cxx11_metaprogramming.html) +and [its sequel](http://pdimov.com/cpp2/simple_cxx11_metaprogramming_2.html). Reading these +articles before proceeding with the documentation is _highly_ recommended. -The library should be placed in a subdirectory `libs/mp11` in a Boost distribution. There is [documentation](https://rawgit.com/pdimov/mp11/master/doc/html/mp11.html) in `doc/html/mp11.html`. +The library is intended to be placed in a subdirectory `libs/mp11` in a Boost distribution, +but can also be used standalone, although it does require Boost.Config. A single-header form +is available in [include/boost/mp11_single.hpp](include/boost/mp11_single.hpp). -Supported compilers: +## Supported compilers * g++ 4.7 or later * clang 3.5 or later * Visual Studio 2013, 2015, 2017 + +## Documentation + +[Overview](doc/mp11/overview.adoc) + +[Definitions](doc/mp11/definitions.adoc) + +[Examples](doc/mp11/examples.adoc) + +[Reference](doc/mp11/reference.adoc) + +The contents of the library are in namespace `boost::mp11`. + +* [Integral Constants](doc/mp11/integral.adoc) + +* [List Operations](doc/mp11/list.adoc) + +* [Utility Components](doc/mp11/utility.adoc) + +* [Algorithms](doc/mp11/algorithm.adoc) + +* [Set Operations](doc/mp11/set.adoc) + +* [Map Operations](doc/mp11/map.adoc) + +* [Helper Metafunctions](doc/mp11/function.adoc) + +* [Bind](doc/mp11/bind.adoc) + +* [Integer Sequences](doc/mp11/integer_sequence.adoc) + +* [A "for each" algorithm for tuple-like types](doc/mp11/tuple_for_each.adoc)