1
0
forked from boostorg/mp11
Files
boost_mp11/doc/mp11/lambda.adoc
2024-10-14 19:34:55 +03:00

35 lines
1.1 KiB
Plaintext

////
Copyright 2024 Joaquin M Lopez Munoz
Distributed under the Boost Software License, Version 1.0.
See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt
////
[#lambda]
# Lambda Expressions, <boost/mp11/lambda.hpp>
:toc:
:toc-title:
:idprefix:
## mp_lambda<T>
template<class T> using mp_lambda = /*...*/;
`mp_lambda<T>` is a quoted metafunction whose nested template `fn<U...>`
returns a type `V` with the same syntactic definition as `T`, except
that occurrences of placeholders in `T` are replaced by the corresponding
element of `U...`.
For example, `mp_lambda<std::pair<_1, _2*>>::fn<int, char>` is `std::pair<int, char*>`.
Replacement does not happen inside those constituent parts of `T` resulting
from the instantiation of a class template with non-type template parameters.
NOTE: In GCC 4.8, a compiler bug results in `const` and `volatile` qualifiers
being stripped from the returned type `V` (except when they are applied to
function or member function types).
NOTE: `mp_lambda` is not supported in VS2013 and prior due to compiler limitations.