mirror of
https://github.com/boostorg/mp11.git
synced 2026-07-05 08:00:48 +02:00
de54a2b597723c779cf64e9dceb5cef09893ea06
compiler | gcc-12 | clang-15
before | 0:00.73s - 270224K | 0:00.54s - 156112K
after | 0:00.19s - 85004K | 0:00.29s - 119232K
```cpp
using namespace boost::mp11;
template<class L, class M = mp_transform<mp_list, L>>
struct f { template<class I> using g = mp_map_update<M, mp_list<I>, mp_list>; };
template<class I, class L = mp_iota<I>> using test
= mp_transform<f<L>::template g, L>;
using r1 = mp_transform<test, mp_iota_c<20>>;
```
Mp11, a C++11 metaprogramming library
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" and its sequel.
Mp11 is part of Boost, starting with release 1.66.0. It
however has no Boost dependencies and can be used standalone, as a Git submodule, for
instance. For CMake users, add_subdirectory is supported, as is installation and
find_package(boost_mp11).
Supported compilers
- g++ 4.8 or later
- clang++ 3.9 or later
- Visual Studio 2013 or later
Tested on Github Actions and Appveyor.
License
Distributed under the Boost Software License, Version 1.0.
Description
Languages
C++
99.1%
CMake
0.5%
Python
0.1%
Shell
0.1%
Batchfile
0.1%