Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/libs/mpl/doc/tutorial/metafunction-composition.html @ 12

Last change on this file since 12 was 12, checked in by landauf, 18 years ago

added boost

File size: 4.0 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
7<title>THE BOOST MPL LIBRARY: Metafunction Composition</title>
8<link rel="stylesheet" href="../style.css" type="text/css" />
9</head>
10<body class="docframe">
11<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./partial-metafunction.html" class="navigation-link">Prev</a>&nbsp;<a href="./lambda-details.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./partial-metafunction.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./more-lambda-capabilities.html" class="navigation-link">Up</a>&nbsp;<a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
12<td class="header-group page-location"><a href="../index.html" class="navigation-link">Front Page</a> / <a href="./tutorial-metafunctions.html" class="navigation-link">Tutorial: Metafunctions and Higher-Order Metaprogramming</a> / <a href="./more-lambda-capabilities.html" class="navigation-link">More Lambda Capabilities</a> / <a href="./metafunction-composition.html" class="navigation-link">Metafunction Composition</a></td>
13</tr></table><div class="header-separator"></div>
14<div class="section" id="metafunction-composition">
15<h1><a class="toc-backref" href="./more-lambda-capabilities.html#id53" name="metafunction-composition">Metafunction Composition</a></h1>
16<p>Lambda expressions can also be used to assemble more interesting
17computations from simple metafunctions.  For example, the following
18expression, which multiplies the sum of two numbers by their
19difference, is a <strong>composition</strong> of the three metafunctions <tt class="literal"><span class="pre">multiplies</span></tt>,
20<tt class="literal"><span class="pre">plus</span></tt>, and <tt class="literal"><span class="pre">minus</span></tt>:</p>
21<pre class="literal-block">
22mpl::multiplies&lt;mpl::plus&lt;_1,_2&gt;, mpl::minus&lt;_1,_2&gt; &gt;
23</pre>
24<!-- @ example.wrap(apply_test[0],
25             ', mpl::int_<5>,mpl::int_<3>' + apply_test[1] % 16)
26# Can't exactly justify this yet, but there's no way to get
27# it into the text
28prefix += ['#include <boost/mpl/multiplies.hpp>']
29compile() -->
30<p>When evaluating a lambda expression, MPL checks to see if any of its
31arguments are themselves lambda expressions, and evaluates each one
32that it finds.  The results of these inner evaluations are substituted
33into the outer expression before it is evaluated.</p>
34</div>
35
36<div class="footer-separator"></div>
37<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./partial-metafunction.html" class="navigation-link">Prev</a>&nbsp;<a href="./lambda-details.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./partial-metafunction.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./more-lambda-capabilities.html" class="navigation-link">Up</a>&nbsp;<a href="../index.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./tutorial_toc.html" class="navigation-link">Full TOC</a></span></td>
38</tr></table></body>
39</html>
Note: See TracBrowser for help on using the repository browser.