mirror of
https://github.com/boostorg/mp11.git
synced 2026-07-11 11:01:08 +02:00
a6b6f8f85e23e8ca1e0472c40dff3ca198f2041e
compiler | gcc-15
before | 0:01.65s - 381364K
after | 0:00.99s - 213064K
```cpp
template<class L, class M = mp_transform<mp_list, L>>
struct f { template<class I> using g = mp_map_find<M, I>; };
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<50>>;
```
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%