Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/mpl/doc/refmanual/and.html @ 29

Last change on this file since 29 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 8.7 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<!-- Copyright Aleksey Gurtovoy 2006. Distributed under the Boost -->
5<!-- Software License, Version 1.0. (See accompanying -->
6<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
7<head>
8<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9<meta name="generator" content="Docutils 0.3.6: http://docutils.sourceforge.net/" />
10<title>The MPL Reference Manual: and_</title>
11<link rel="stylesheet" href="../style.css" type="text/css" />
12</head>
13<body class="docframe refmanual">
14<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Prev</a>&nbsp;<a href="./or.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./or.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
15<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./metafunctions.html" class="navigation-link">Metafunctions</a> / <a href="./logical-operations.html" class="navigation-link">Logical Operations</a> / <a href="./and.html" class="navigation-link">and_</a></td>
16</tr></table><div class="header-separator"></div>
17<div class="section" id="and">
18<h1><a class="toc-backref" href="./logical-operations.html#id476" name="and">and_</a></h1>
19<div class="section" id="and-synopsis">
20<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3>
21<pre class="literal-block">
22template&lt; 
23      typename F1
24    , typename F2
25    <em>...</em>
26    , typename F<em>n</em> = <em>unspecified</em>
27    &gt;
28struct <a href="./and.html" class="identifier">and_</a>
29{
30    typedef <em>unspecified</em> type;
31};
32</pre>
33</div>
34<div class="section" id="and-description">
35<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
36<p>Returns the result of short-circuit <em>logical and</em> (<tt class="literal"><span class="pre">&amp;&amp;</span></tt>) operation on its arguments.</p>
37</div>
38<div class="section" id="and-header">
39<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
40<pre class="literal-block">
41#include &lt;<a href="../../../../boost/mpl/and.hpp" class="header">boost/mpl/and.hpp</a>&gt;
42#include &lt;<a href="../../../../boost/mpl/logical.hpp" class="header">boost/mpl/logical.hpp</a>&gt;
43</pre>
44</div>
45<div class="section" id="and-parameters">
46<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3>
47<table border="1" class="table">
48<colgroup>
49<col width="17%" />
50<col width="30%" />
51<col width="53%" />
52</colgroup>
53<thead valign="bottom">
54<tr><th>Parameter</th>
55<th>Requirement</th>
56<th>Description</th>
57</tr>
58</thead>
59<tbody valign="top">
60<tr><td><tt class="literal"><span class="pre">F1</span></tt>, <tt class="literal"><span class="pre">F2</span></tt>,... <tt class="literal"><span class="pre">Fn</span></tt></td>
61<td>Nullary <a class="reference" href="./metafunction.html">Metafunction</a></td>
62<td>Operation's arguments.</td>
63</tr>
64</tbody>
65</table>
66</div>
67<div class="section" id="and-expression-semantics">
68<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
69<p>For arbitrary nullary <a class="reference" href="./metafunction.html">Metafunction</a>s <tt class="literal"><span class="pre">f1</span></tt>, <tt class="literal"><span class="pre">f2</span></tt>,... <tt class="literal"><span class="pre">fn</span></tt>:</p>
70<pre class="literal-block">
71typedef <a href="./and.html" class="identifier">and_</a>&lt;f1,f2,<em>...</em>,f<em>n</em>&gt;::type r;
72</pre>
73<table class="field-list" frame="void" rules="none">
74<col class="field-name" />
75<col class="field-body" />
76<tbody valign="top">
77<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
78</tr>
79<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><tt class="literal"><span class="pre">r</span></tt> is <tt class="literal"><span class="pre">false_</span></tt> if either of <tt class="literal"><span class="pre">f1::type::value</span></tt>, <tt class="literal"><span class="pre">f2::type::value</span></tt>,...
80<tt class="literal"><span class="pre">fn::type::value</span></tt> expressions evaluates to <tt class="literal"><span class="pre">false</span></tt>, and <tt class="literal"><span class="pre">true_</span></tt> otherwise;
81guarantees left-to-right evaluation; the operands subsequent to the first
82<tt class="literal"><span class="pre">f</span></tt><em>i</em> metafunction that evaluates to <tt class="literal"><span class="pre">false</span></tt> are not evaluated.</td>
83</tr>
84</tbody>
85</table>
86<!-- .......................................................................... -->
87<pre class="literal-block">
88typedef <a href="./and.html" class="identifier">and_</a>&lt;f1,f2,<em>...</em>,f<em>n</em>&gt; r;
89</pre>
90<table class="field-list" frame="void" rules="none">
91<col class="field-name" />
92<col class="field-body" />
93<tbody valign="top">
94<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference" href="./integral-constant.html">Integral Constant</a>.</td>
95</tr>
96<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first">Equivalent to</p>
97<pre class="last literal-block">
98struct r : <a href="./and.html" class="identifier">and_</a>&lt;f1,f2,<em>...</em>,f<em>n</em>&gt;::type {};
99</pre>
100</td>
101</tr>
102</tbody>
103</table>
104</div>
105<div class="section" id="and-example">
106<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
107<pre class="literal-block">
108struct unknown;
109
110<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; true_,true_ &gt; ));
111<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,true_ &gt; ));
112<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; true_,false_ &gt; ));
113<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,false_ &gt; ));
114<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,unknown &gt; )); // OK
115<a href="./assert-not.html" class="identifier">BOOST_MPL_ASSERT_NOT</a>(( <a href="./and.html" class="identifier">and_</a>&lt; false_,unknown,unknown &gt; )); // OK too
116</pre>
117</div>
118<div class="section" id="and-see-also">
119<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
120<p><a class="reference" href="./metafunctions.html">Metafunctions</a>, <a class="reference" href="./logical-operations.html">Logical Operations</a>, <a class="refentry reference" href="./or.html"><tt class="refentry literal"><span class="pre">or_</span></tt></a>, <a class="refentry reference" href="./not.html"><tt class="refentry literal"><span class="pre">not_</span></tt></a></p>
121<!-- modtime: November 10, 2004 04:46:17 +0000 -->
122<!-- Metafunctions/Logical Operations//or_ |20 -->
123</div>
124</div>
125
126<div class="footer-separator"></div>
127<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Prev</a>&nbsp;<a href="./or.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group">Back&nbsp;<a href="./or.html" class="navigation-link">Along</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./logical-operations.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
128</tr></table></body>
129</html>
Note: See TracBrowser for help on using the repository browser.