123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.1//EN"
- "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
- <section id="safe_numerics.safe_range">
- <title>safe_signed_range<MIN, MAX, PP, EP> and
- safe_unsigned_range<MIN, MAX, PP, EP></title>
- <?dbhtml stop-chunking?>
- <section>
- <title>Description</title>
- <para>This type holds a signed or unsigned integer in the closed range
- [MIN, MAX]. A <code>safe_signed_range<MIN, MAX, PP, EP></code> or
- <code>safe_unsigned_range<MIN, MAX, PP, EP></code> can be used
- anywhere an arithmetic type is permitted. Any expression which uses either
- of these types is guaranteed to return an arithmetically correct value or
- to trap in some way.</para>
- </section>
- <section>
- <title>Notation</title>
- <informaltable>
- <tgroup cols="2">
- <colspec align="left" colwidth="1*"/>
- <colspec align="left" colwidth="8*"/>
- <thead>
- <row>
- <entry align="left">Symbol</entry>
- <entry align="left">Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><code>MIN, MAX</code></entry>
- <entry>Minimum and maximum values that the range can
- represent.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>Associated Types</title>
- <informaltable>
- <tgroup cols="2">
- <colspec align="left" colwidth="1*"/>
- <colspec align="left" colwidth="8*"/>
- <tbody>
- <row>
- <entry><code>PP</code></entry>
- <entry>Promotion Policy. A type which specifies the result type of
- an expression using safe types.</entry>
- </row>
- <row>
- <entry><code>EP</code></entry>
- <entry>Exception Policy. A type containing members which are
- called when a correct result cannot be returned</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>Template Parameters</title>
- <informaltable>
- <tgroup cols="3">
- <colspec align="left" colwidth="1*"/>
- <colspec align="left" colwidth="2*"/>
- <colspec align="left" colwidth="6*"/>
- <thead>
- <row>
- <entry align="left">Parameter</entry>
- <entry align="left">Requirements</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><code>MIN</code></entry>
- <entry>must be a non-negative literal</entry>
- <entry>The minimum non-negative integer value that this type may
- hold</entry>
- </row>
- <row>
- <entry><code>MAX</code></entry>
- <entry>must be a non-negative literal</entry>
- <entry>The maximum non-negative integer value that this type may
- hold</entry>
- </row>
- <row>
- <entry/>
- <entry>MIN <= MAX</entry>
- <entry>must be a valid closed range</entry>
- </row>
- <row>
- <entry><code>PP</code></entry>
- <entry><link linkend="safe_numerics.numeric"><link
- linkend="safe_numerics.promotion_policy">PromotionPolicy<PP></link></link></entry>
- <entry><para>Default value is <link
- linkend="safe_numerics.promotion_policies.native"><code>boost::numeric::native</code></link></para></entry>
- </row>
- <row>
- <entry><code>EP</code></entry>
- <entry><link linkend="safe_numerics.numeric"><link
- linkend="safe_numerics.exception_policy">Exception
- Policy<EP></link></link></entry>
- <entry><para>Default value is <link
- linkend="safe_numerics.exception_policies.default_exception_policy"><code>boost::numeric::default_exception_policy</code></link></para></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </section>
- <section>
- <title>Model of</title>
- <para><link linkend="safe_numerics.numeric">Integer</link></para>
- <para><link
- linkend="safe_numerics.safe_numeric_concept">SafeNumeric</link></para>
- </section>
- <section>
- <title>Valid Expressions</title>
- <para>Implements all expressions and only those expressions defined by the
- <link linkend="safe_numerics.safe_numeric_concept">SafeNumeric</link> type
- requirements. Thus, the result type of such an expression will be another
- safe type. The actual type of the result of such an expression will depend
- upon the specific promotion policy template parameter.</para>
- </section>
- <section>
- <title>Example of use</title>
- <programlisting><xi:include href="../../example/example19.cpp"
- parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
- </section>
- <section>
- <title>Header</title>
- <para><filename><ulink
- url="../../include/boost/safe_numerics/safe_integer_range.hpp">#include
- <boost/numeric/safe_numerics/safe_range.hpp></ulink></filename></para>
- </section>
- </section>
|