![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
THE BOOST MPL LIBRARY: Lambda and Non-Metafunction TemplatesBoost , ,
|
Front Page / Tutorial: Metafunctions and Higher-Order Metaprogramming / Lambda Details / Lambda and Non-Metafunction Templates |
Есть только одна деталь выражений, которые мы еще не обсуждали. MPL использует специальное правило, чтобы упростить интеграцию обычных шаблонов в метапрограммы: После того, как все заполнители были заменены фактическими аргументами, если полученная шаблонная специализацияXне имеет вложенного::type, результат — толькоX.
Например,mpl::apply
// trivial std::vector generator template<class U> struct make_vector { typedef std::vector<U> type; }; typedef mpl::apply<make_vector<_>, T>::type vector_of_t;
Вместо этого мы можем просто написать:
typedef mpl::apply<std::vector<_>, T>::type vector_of_t;
Статья THE BOOST MPL LIBRARY: Lambda and Non-Metafunction Templates раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |