Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68195 - in sandbox/opaque/libs/opaque/doc: . html
From: vicente.botet_at_[hidden]
Date: 2011-01-16 17:25:35


Author: viboes
Date: 2011-01-16 17:25:22 EST (Sun, 16 Jan 2011)
New Revision: 68195
URL: http://svn.boost.org/trac/boost/changeset/68195

Log:
Boost.Opaque: Update doc

Text files modified:
   sandbox/opaque/libs/opaque/doc/Jamfile.v2 | 5
   sandbox/opaque/libs/opaque/doc/html/index.html | 6644 ++++++++++++++++++++-------------------
   sandbox/opaque/libs/opaque/doc/opaque.qbk | 156
   3 files changed, 3541 insertions(+), 3264 deletions(-)

Modified: sandbox/opaque/libs/opaque/doc/Jamfile.v2
==============================================================================
--- sandbox/opaque/libs/opaque/doc/Jamfile.v2 (original)
+++ sandbox/opaque/libs/opaque/doc/Jamfile.v2 2011-01-16 17:25:22 EST (Sun, 16 Jan 2011)
@@ -51,7 +51,7 @@
 
         # PDF Options:
         # TOC Generation: this is needed for FOP-0.9 and later:
- #<xsl:param>fop1.extensions=1
+ <xsl:param>fop1.extensions=0
         # Or enable this if you're using XEP:
         <xsl:param>xep.extensions=1
         # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
@@ -69,4 +69,7 @@
         # better use SVG's instead:
         <format>pdf:<xsl:param>admon.graphics.extension=".svg"
         <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
+ <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/opaque/doc/html
    ;
+
+install pdf-install : standalone : <location>. <install-type>PDF ;

Modified: sandbox/opaque/libs/opaque/doc/html/index.html
==============================================================================
--- sandbox/opaque/libs/opaque/doc/html/index.html (original)
+++ sandbox/opaque/libs/opaque/doc/html/index.html 2011-01-16 17:25:22 EST (Sun, 16 Jan 2011)
@@ -27,7 +27,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright &#169; 2010 Vicente J. Botet Escriba</p></div>
 <div><div class="legalnotice">
-<a name="id4946181"></a><p>
+<a name="id4946180"></a><p>
         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)
       </p>
@@ -84,13 +84,25 @@
 </dl></dd>
 </dl>
 </div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- &#8220;<span class="quote">Strong type checking is gold; normal type checking is silver; and casting
- is brass</span>&#8221;
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <span class="bold"><strong><span class="emphasis"><em>-- </em></span></strong></span>
- </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ &#8220;<span class="quote">Strong type checking is gold; normal type checking is silver; and
+ casting is brass</span>&#8221;
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ <span class="bold"><strong><span class="emphasis"><em>-- </em></span></strong></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
 <div class="warning"><table border="0" summary="Warning">
 <tr>
 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../doc/src/images/warning.png"></td>
@@ -109,7 +121,7 @@
 <dt><span class="section">Description</span></dt>
 </dl></div>
 <a name="boost.opaque.overview.how_to_use_this_documentation"></a><h3>
-<a name="id4948613"></a>
+<a name="id4948622"></a>
       <a href="index.html#boost.opaque.overview.how_to_use_this_documentation">How to
       Use This Documentation</a>
     </h3>
@@ -118,32 +130,35 @@
     </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Code is in <code class="computeroutput"><span class="identifier">fixed</span> <span class="identifier">width</span>
- <span class="identifier">font</span></code> and is syntax-highlighted.
- </li>
-<li>
- Replaceable text that you will need to supply is in <em class="replaceable"><code>italics</code></em>.
- </li>
-<li>
- If a name refers to a free function, it is specified like this: <code class="computeroutput"><span class="identifier">free_function</span><span class="special">()</span></code>;
- that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code>
- to indicate that it is a free function.
- </li>
-<li>
- If a name refers to a class template, it is specified like this: <code class="computeroutput"><span class="identifier">class_template</span><span class="special">&lt;&gt;</span></code>;
- that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special">&lt;&gt;</span></code>
- to indicate that it is a class template.
- </li>
-<li>
- If a name refers to a function-like macro, it is specified like this:
- <code class="computeroutput"><span class="identifier">MACRO</span><span class="special">()</span></code>;
- that is, it is uppercase in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code> to indicate that it is a function-like
- macro. Object-like macros appear without the trailing <code class="computeroutput"><span class="special">()</span></code>.
- </li>
-<li>
- Names that refer to <span class="emphasis"><em>concepts</em></span> in the generic programming
- sense are specified in CamelCase.
- </li>
+ Code is in <code class="computeroutput"><span class="identifier">fixed</span> <span class="identifier">width</span>
+ <span class="identifier">font</span></code> and is syntax-highlighted.
+ </li>
+<li>
+ Replaceable text that you will need to supply is in
+ <em class="replaceable"><code>
+ italics
+ </code></em>
+ .
+ </li>
+<li>
+ If a name refers to a free function, it is specified like this: <code class="computeroutput"><span class="identifier">free_function</span><span class="special">()</span></code>;
+ that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code>
+ to indicate that it is a free function.
+ </li>
+<li>
+ If a name refers to a class template, it is specified like this: <code class="computeroutput"><span class="identifier">class_template</span><span class="special">&lt;&gt;</span></code>;
+ that is, it is in code font and its name is followed by <code class="computeroutput"><span class="special">&lt;&gt;</span></code>
+ to indicate that it is a class template.
+ </li>
+<li>
+ If a name refers to a function-like macro, it is specified like this: <code class="computeroutput"><span class="identifier">MACRO</span><span class="special">()</span></code>;
+ that is, it is uppercase in code font and its name is followed by <code class="computeroutput"><span class="special">()</span></code> to indicate that it is a function-like
+ macro. Object-like macros appear without the trailing <code class="computeroutput"><span class="special">()</span></code>.
+ </li>
+<li>
+ Names that refer to <span class="emphasis"><em>concepts</em></span> in the generic programming
+ sense are specified in CamelCase.
+ </li>
 </ul></div>
 <div class="note"><table border="0" summary="Note">
 <tr>
@@ -158,7 +173,8 @@
 <p>
       Finally, you can mentally add the following to any code fragments in this document:
     </p>
-<pre class="programlisting"><span class="comment">// Include all of the core Opaque files
+<pre class="programlisting">
+<span class="comment">// Include all of the core Opaque files
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">opaque</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span>
@@ -173,16 +189,19 @@
         calls "strong typedefs", but the implementation is not complete.
       </p>
 <p>
- The Walter E. Brown's proposals () includes a clear motivation for "opaque
- typedefs".
+ The Walter E. Brown's proposals (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1891.pdf" target="_top"><span class="bold"><strong>N1891: Progress toward Opaque Typedefs for C++0X</strong></span> and
+ N1706: Toward Opaque Typedefs in C++0X</a>)
+ include a clear motivation for "opaque typedefs".
       </p>
 <p>
- In Alisdair Meredith showed in [] the implicitly generating forwarding constructors
- to a base class new C++0x feature could not be useful to address this issue
- completly. Using this new feature it becomes possible to create something
- very like the required opaque typedef. For example:
+ Alisdair Meredith showed in N2141: Strong Typedefs in C++09(Revisited)
+ that the new C++0x feature that implicitly generates forward constructors
+ to a base class, could not be useful to address this issue completly. Using
+ this new feature it becomes possible to create something very like the required
+ opaque typedef. For example:
       </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">MyType</span> <span class="special">:</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">MyType</span> <span class="special">:</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">{</span>
     <span class="keyword">using</span> <span class="identifier">string</span><span class="special">::</span><span class="identifier">string</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
@@ -193,7 +212,7 @@
       </p>
 <p>
         As this proposals will not be part of the C++0x standard, a library solution
- that could satisfy most of the requirements seems a loable approach.
+ that could satisfy most of the requirements seems a loable alternative.
       </p>
 </div>
 <div class="section" lang="en">
@@ -209,25 +228,25 @@
       </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- a generic mixin class hierarchy which can be specialized by the user
- to make new opaque classes.
- </li>
+ a generic mixin class hierarchy which can be specialized by the user to
+ make new opaque classes.
+ </li>
 <li>
- a generic class hierarchy which can be instantiated by the user to make
- new opaque typedefs.
- </li>
+ a generic class hierarchy which can be instantiated by the user to make
+ new opaque typedefs.
+ </li>
 <li>
- a meta-mixin concept that allows to compose in a easy way several aspects
- of a class in an orthogonal way.
- </li>
+ a meta-mixin concept that allows to compose in a easy way several aspects
+ of a class in an orthogonal way.
+ </li>
 <li>
- a considerable number of meta-mixins that helps defining new types from
- an underlying type
- </li>
+ a considerable number of meta-mixins that helps defining new types from
+ an underlying type
+ </li>
 <li>
- Some helper macros that can reduce the declaration of a new opaque type
- to a single line, emulating the language-based approach.
- </li>
+ Some helper macros that can reduce the declaration of a new opaque type
+ to a single line, emulating the language-based approach.
+ </li>
 </ul></div>
 </div>
 </div>
@@ -283,13 +302,13 @@
         Installing Boost.Opaque</a>
 </h4></div></div></div>
 <a name="boost.opaque.users_guide.getting_started.install.getting_boost_opaque"></a><h5>
-<a name="id4987337"></a>
+<a name="id4987343"></a>
           <a href="index.html#boost.opaque.users_guide.getting_started.install.getting_boost_opaque">Getting
           Boost.Opaque</a>
         </h5>
 <p>
           You can get the last stable release of <span class="bold"><strong>Boost.Opaque</strong></span>
- by downloading <code class="literal">ppaque.zip</code> from the <a href="http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=opaque.zip&amp;directory=Utilities&amp;" target="_top">Boost
+ by downloading <code class="literal">opaque.zip</code> from the <a href="http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=opaque.zip&amp;directory=Utilities&amp;" target="_top">Boost
           Vault Utilities directory</a>
         </p>
 <p>
@@ -297,7 +316,7 @@
           Sandbox</a>.
         </p>
 <a name="boost.opaque.users_guide.getting_started.install.building_boost_opaque"></a><h5>
-<a name="id4987398"></a>
+<a name="id4987403"></a>
           <a href="index.html#boost.opaque.users_guide.getting_started.install.building_boost_opaque">Building
           Boost.Opaque</a>
         </h5>
@@ -307,7 +326,7 @@
           in your compiler include path.
         </p>
 <a name="boost.opaque.users_guide.getting_started.install.requirements"></a><h5>
-<a name="id4987430"></a>
+<a name="id4987435"></a>
           <a href="index.html#boost.opaque.users_guide.getting_started.install.requirements">Requirements</a>
         </h5>
 <p>
@@ -315,7 +334,7 @@
           (and all libraries it depends on).
         </p>
 <a name="boost.opaque.users_guide.getting_started.install.exceptions_safety"></a><h5>
-<a name="id4987461"></a>
+<a name="id4987466"></a>
           <a href="index.html#boost.opaque.users_guide.getting_started.install.exceptions_safety">Exceptions
           safety</a>
         </h5>
@@ -324,7 +343,7 @@
           of exception safety as long as the underlying parameters provide it.
         </p>
 <a name="boost.opaque.users_guide.getting_started.install.thread_safety"></a><h5>
-<a name="id4987488"></a>
+<a name="id4987493"></a>
           <a href="index.html#boost.opaque.users_guide.getting_started.install.thread_safety">Thread
           safety</a>
         </h5>
@@ -332,7 +351,7 @@
           All functions in the library are thread-unsafe except when noted explicitly.
         </p>
 <a name="boost.opaque.users_guide.getting_started.install.tested_compilers"></a><h5>
-<a name="id4987513"></a>
+<a name="id4987519"></a>
           <a href="index.html#boost.opaque.users_guide.getting_started.install.tested_compilers">Tested
           compilers</a>
         </h5>
@@ -343,39 +362,40 @@
 <p>
           Windows with
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- MSVC 10.0
- </li>
-<li>
- MSVC 9.0 Express
- </li>
-</ul></div>
+<div class="itemizedlist"><ul type="disc"><li>
+ MSVC 10.0
+ </li></ul></div>
 <p>
           Cygwin 1.5 with
         </p>
 <div class="itemizedlist"><ul type="disc"><li>
- GCC 3.4.4
- </li></ul></div>
+ GCC 3.4.4
+ </li></ul></div>
 <p>
           Cygwin 1.7 with
         </p>
 <div class="itemizedlist"><ul type="disc"><li>
- GCC 4.3.4
- </li></ul></div>
+ GCC 4.3.4
+ </li></ul></div>
 <p>
           MinGW with
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- GCC 4.4.0
- </li>
+ GCC 4.4.0
+ </li>
 <li>
- GCC 4.5.0
- </li>
+ GCC 4.5.0
+ </li>
 <li>
- GCC 4.5.0 C++0x
- </li>
+ GCC 4.5.0 C++0x
+ </li>
+<li>
+ GCC 4.6.0
+ </li>
+<li>
+ GCC 4.6.0 C++0x
+ </li>
 </ul></div>
 <div class="note"><table border="0" summary="Note">
 <tr>
@@ -424,10 +444,11 @@
 </h4></div></div></div>
 <p>
           We will start with the definition of a new type identifier which is based
- on an underlying int type and has the relational operators so it can be
- stored on a sorted container.
+ on an underlying <code class="computeroutput"><span class="keyword">int</span></code> type
+ and has the relational operators so it can be stored on a sorted container.
         </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Identifier_tag</span><span class="special">;</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">Identifier_tag</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">new_type</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">Identifier_tag</span><span class="special">,</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span>
         <span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span>
@@ -438,42 +459,48 @@
           The declaration of a new typedef Identifier is done as follows. We need
           to declare a specific tag that will ensure that two new types are different.
         </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Identifier_tag</span><span class="special">;</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">Identifier_tag</span><span class="special">;</span>
 </pre>
 <p>
- New we use the opaque new_type class which has as parameters:
+ New we use the opaque <code class="computeroutput"><span class="identifier">new_type</span></code>
+ class which has as parameters:
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- the underlying type (<code class="computeroutput"><span class="keyword">int</span></code>),
- </li>
+ the underlying type (<code class="computeroutput"><span class="keyword">int</span></code>),
+ </li>
 <li>
- the unique tag of the new type (<code class="computeroutput"><span class="identifier">Identifier_tag</span></code>),
- </li>
+ the unique tag of the <code class="computeroutput"><span class="keyword">new</span> <span class="identifier">type</span></code> (<code class="computeroutput"><span class="identifier">Identifier_tag</span></code>),
+ </li>
 <li>
- a MPL sequence of additions (<code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">&gt;</span></code>)
- </li>
+ a MPL sequence of additions (<code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">&gt;</span></code>)
+ </li>
 </ul></div>
 <p>
- This will declare Identifier as new type different from <code class="computeroutput"><span class="keyword">int</span></code>
+ This will declare <code class="computeroutput"><span class="identifier">Identifier</span></code>
+ as new type different from <code class="computeroutput"><span class="keyword">int</span></code>
           that provides just the operation associated to a <code class="computeroutput"><span class="identifier">totally_ordered</span></code>
           concept. The concepts are represented by the library in the form a meta-mixin
           and are named with the <code class="computeroutput"><span class="identifier">using_</span></code>
           prefix, e.g. as <code class="computeroutput"><span class="identifier">using_totally_ordered1</span></code>.
+ We will see later what a meta-mixin intends for.
         </p>
 <p>
- We can now use Identifier as new int type, but limited to the totally ordered
- operations.
+ We can now use <code class="computeroutput"><span class="identifier">Identifier</span></code>
+ as new <code class="computeroutput"><span class="keyword">int</span></code> type, but limited
+ to the totally ordered operations.
         </p>
 <p>
- <span class="bold"><strong>Boost.Opaque</strong></span> provides a macros to simplify
+ <span class="bold"><strong>Boost.Opaque</strong></span> provides a macro to simplify
           the preceding declaration
         </p>
-<pre class="programlisting"><span class="identifier">BOOST_OPAQUE_NEW_TYPE</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">Identifier</span><span class="special">,</span> <span class="special">((</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">)))</span>
+<pre class="programlisting">
+<span class="identifier">BOOST_OPAQUE_NEW_TYPE</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">Identifier</span><span class="special">,</span> <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">))</span>
 </pre>
 <p>
- The macros is responsable to define a uniqye tag and transform the preprocessor
- PPL sequence into a MPL sequence.
+ The macros is responsable to define a unique tag and transform the preprocessor
+ sequence into a MPL sequence.
         </p>
 </div>
 <div class="section" lang="en">
@@ -483,11 +510,12 @@
         to define a real new type?</a>
 </h4></div></div></div>
 <p>
- In the prededing example we use a tag to ensure type unicity. When the
- user needs to add yet some specific methods, this tag is no more necessary
+ In the prededing example we have used a tag to ensure type unicity. When
+ the user needs to add yet some specific methods, this tag is no more necessary
           as we need to define already a new class.
         </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Identifier</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">new_class</span><span class="special">&lt;</span><span class="identifier">Identifier</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">Identifier</span> <span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">new_class</span><span class="special">&lt;</span><span class="identifier">Identifier</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span>
         <span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span>
     <span class="special">&gt;</span>
@@ -503,28 +531,29 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- the class we are defining
- </li>
+ the final class we are defining
+ </li>
 <li>
- the underlying type (<code class="computeroutput"><span class="keyword">int</span></code>),
- </li>
+ the underlying type (<code class="computeroutput"><span class="keyword">int</span></code>),
+ </li>
 <li>
- a MPL sequence of additions (<code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">&gt;</span></code>)
- </li>
+ a MPL sequence of additions <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">&gt;</span></code>
+</li>
 </ul></div>
 <p>
           <span class="bold"><strong>Boost.Opaque</strong></span> provides a macro <code class="computeroutput"><span class="identifier">BOOST_OPAQUE_NEW_CLASS</span></code> to simplify the
           preceding declaration
         </p>
-<pre class="programlisting"><span class="identifier">BOOST_OPAQUE_NEW_CLASS</span><span class="special">(</span><span class="identifier">Identifier</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="special">((</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">)))</span>
+<pre class="programlisting">
+<span class="identifier">BOOST_OPAQUE_NEW_CLASS</span><span class="special">(</span><span class="identifier">Identifier</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_totally_ordered1</span><span class="special">))</span>
 <span class="special">{</span>
     <span class="keyword">void</span> <span class="identifier">print</span><span class="special">();</span>
     <span class="comment">// ...
 </span><span class="special">}</span>
 </pre>
 <p>
- The macros is responsable to define a unique tag and transform the preprocessor
- PPL sequence into a MPL sequence.
+ The macros is responsable to transform the preprocessor sequence into a
+ MPL sequence.
         </p>
 </div>
 <div class="section" lang="en">
@@ -534,10 +563,11 @@
         type for relational operators: <code class="computeroutput"><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span></code></a>
 </h4></div></div></div>
 <p>
- The following code doesn't warns in (1) when we use <code class="computeroutput"><span class="number">0</span></code>
- where a <code class="computeroutput"><span class="keyword">bool</span></code> is expected.
+ The following code doesn't warms in (1) when we use the integer <code class="computeroutput"><span class="number">0</span></code> where a <code class="computeroutput"><span class="keyword">bool</span></code>
+ is expected.
         </p>
-<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">Bool</span><span class="special">;</span>
+<pre class="programlisting">
+<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">Bool</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">Int</span><span class="special">;</span>
 
 <span class="identifier">Bool</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Int</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">Int</span> <span class="identifier">b</span><span class="special">)</span>
@@ -551,12 +581,13 @@
           and <code class="computeroutput"><span class="identifier">false_</span></code> are accepted
           as constant expressions
         </p>
-<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">Int</span><span class="special">;</span>
+<pre class="programlisting">
+<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">Int</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span> <span class="identifier">Bool</span><span class="special">;</span>
 
 <span class="identifier">Bool</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Int</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">Int</span> <span class="identifier">b</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="keyword">if</span><span class="special">(</span><span class="identifier">cnd</span><span class="special">())</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> <span class="comment">// (1) Error
+ <span class="keyword">if</span><span class="special">(</span><span class="identifier">cnd</span><span class="special">())</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> <span class="comment">// (1) Error
 </span> <span class="keyword">else</span> <span class="keyword">return</span> <span class="identifier">a</span> <span class="special">&gt;</span> <span class="identifier">b</span><span class="special">;</span> <span class="comment">// (2) Error
 </span><span class="special">}</span>
 </pre>
@@ -565,14 +596,15 @@
           is not convertible to <code class="computeroutput"><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span></code>.
           This can be easily solved
         </p>
-<pre class="programlisting"><span class="identifier">Bool</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Int</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">Int</span> <span class="identifier">b</span><span class="special">)</span>
+<pre class="programlisting">
+<span class="identifier">Bool</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Int</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">Int</span> <span class="identifier">b</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="keyword">if</span><span class="special">(</span><span class="identifier">cnd</span><span class="special">())</span> <span class="keyword">return</span> <span class="identifier">opaque</span><span class="special">::</span><span class="identifier">false_</span><span class="special">;</span> <span class="comment">// OK
-</span> <span class="keyword">else</span> <span class="keyword">return</span> <span class="identifier">a</span> <span class="special">&gt;</span> <span class="identifier">b</span><span class="special">;</span> <span class="comment">// (2) Error
+ <span class="keyword">if</span><span class="special">(</span><span class="identifier">cnd</span><span class="special">())</span> <span class="keyword">return</span> <span class="identifier">opaque</span><span class="special">::</span><span class="identifier">false_</span><span class="special">;</span> <span class="comment">// OK
+</span> <span class="keyword">else</span> <span class="keyword">return</span> <span class="identifier">a</span> <span class="special">&gt;</span> <span class="identifier">b</span><span class="special">;</span> <span class="comment">// (2) Error
 </span><span class="special">}</span>
 </pre>
 <p>
- But now we also get an error on (2) as <code class="computeroutput"><span class="identifier">a</span>
+ But we also get an error on (2) as <code class="computeroutput"><span class="identifier">a</span>
           <span class="special">&gt;</span> <span class="identifier">b</span></code>
           is not convertible to <code class="computeroutput"><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span></code>.
           To solve this issue we need that the signature <code class="computeroutput"><span class="identifier">Int</span>
@@ -581,10 +613,11 @@
         </p>
 <p>
           <span class="bold"><strong>Boost.Opaque</strong></span> provides a meta-mixin that
- allos to define an integer-like class that use <code class="computeroutput"><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span></code>
+ allow to define an integer-like class that use <code class="computeroutput"><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span></code>
           as type for the result of the relational operators.
         </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Int_tag</span><span class="special">;</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">Int_tag</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">new_type</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">Int_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span>
     <span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_integer_like</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span><span class="special">&gt;</span>
 <span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">Int</span><span class="special">;</span>
@@ -596,7 +629,8 @@
 <p>
           Or using the macro
         </p>
-<pre class="programlisting"><span class="identifier">BOOST_OPAQUE_NEW_TYPE</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">Int</span><span class="special">,</span> <span class="special">((</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_integer_like</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span><span class="special">&gt;)))</span>
+<pre class="programlisting">
+<span class="identifier">BOOST_OPAQUE_NEW_TYPE</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">Int</span><span class="special">,</span> <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_integer_like</span><span class="special">&lt;</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">boolean</span><span class="special">&gt;))</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -616,7 +650,8 @@
           This can be done with the <code class="computeroutput"><span class="identifier">BOOST_OPAQUE_PUBLIC_TYPEDEF</span></code>
           macro.
         </p>
-<pre class="programlisting"><span class="comment">// Listing 1
+<pre class="programlisting">
+<span class="comment">// Listing 1
 </span><span class="comment">// Cartesian 3D coordinate types
 </span><span class="identifier">BOOST_OPAQUE_PUBLIC_TYPEDEF</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">X</span><span class="special">);</span>
 <span class="identifier">BOOST_OPAQUE_PUBLIC_TYPEDEF</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">Y</span><span class="special">);</span>
@@ -656,11 +691,11 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- public opaque typedef: implicit conversion to the underlying type
- </li>
+ public opaque typedef: implicit conversion to the underlying type
+ </li>
 <li>
- public opaque typedef: explict conversion to the underlying type
- </li>
+ private opaque typedef: explict conversion to the underlying type
+ </li>
 </ul></div>
 </div>
 <div class="section" lang="en">
@@ -672,22 +707,24 @@
 <p>
           Sometimes we want to inherit most of the operations inherited from the
           underlying type. We can either use the <code class="computeroutput"><span class="identifier">new_type</span></code>
- class and bee explicit on which operation we want
+ class and be explicit on which operation we want
         </p>
-<pre class="programlisting"><span class="identifier">BOOST_OPAQUE_NEW_TYPE</span><span class="special">(</span><span class="identifier">UT</span><span class="special">,</span> <span class="identifier">NT</span><span class="special">,</span> <span class="special">(</span>
+<pre class="programlisting">
+<span class="identifier">BOOST_OPAQUE_NEW_TYPE</span><span class="special">(</span><span class="identifier">UT</span><span class="special">,</span> <span class="identifier">NT</span><span class="special">,</span>
     <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_ope1</span><span class="special">)</span>
     <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_ope2</span><span class="special">)</span>
     <span class="special">...</span>
     <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">using_open</span><span class="special">)</span>
-<span class="special">))</span>
+<span class="special">)</span>
 </pre>
 <p>
- Or we can use opaque types and state explicitly which operation wil be
+ or we can use opaque types and state explicitly which operation will be
           hidden.
         </p>
-<pre class="programlisting"><span class="identifier">BOOST_OPAQUE_PUBLIC_OPAQUE_TYPE</span><span class="special">(</span><span class="identifier">UT</span><span class="special">,</span> <span class="identifier">NT</span><span class="special">,</span> <span class="special">(</span>
+<pre class="programlisting">
+<span class="identifier">BOOST_OPAQUE_PUBLIC_OPAQUE_TYPE</span><span class="special">(</span><span class="identifier">UT</span><span class="special">,</span> <span class="identifier">NT</span><span class="special">,</span>
     <span class="special">(</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">hiding_opeK</span><span class="special">)</span>
-<span class="special">))</span>
+<span class="special">)</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -709,14 +746,66 @@
         UDT as Underlying types</a>
 </h4></div></div></div>
 <p>
- Talk about the problem with direct data access that can not be wrapped
- by the underlying type.
- </p>
-<p>
           For example we can access the fisrt field of the UT pair, but the OT can
           not give this access. Instead the OT could define some function accessors
           that inderectly will almost behave as the data member.
         </p>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">UT</span> <span class="special">{</span>
+ <span class="identifier">T</span> <span class="identifier">member_</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="identifier">UT</span> <span class="identifier">ut</span><span class="special">;</span>
+<span class="identifier">ut</span><span class="special">.</span><span class="identifier">member_</span> <span class="special">=</span> <span class="number">88</span><span class="special">;</span>
+
+
+<span class="keyword">struct</span> <span class="identifier">OT</span> <span class="special">:</span> <span class="identifier">new_class</span><span class="special">&lt;</span><span class="identifier">OT</span><span class="special">,</span><span class="identifier">UT</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">member</span><span class="special">()</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">underlying</span><span class="special">().</span><span class="identifier">member_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">T</span> <span class="identifier">member</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">underlying</span><span class="special">().</span><span class="identifier">member_</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="identifier">OT</span> <span class="identifier">ot</span><span class="special">;</span>
+<span class="comment">//ot.member_=88 // compile-error
+</span><span class="identifier">ot</span><span class="special">.</span><span class="identifier">member</span><span class="special">()</span> <span class="special">=</span> <span class="number">88</span><span class="special">;</span>
+</pre>
+<p>
+ For pointer to members, we have the same problem
+ </p>
+<pre class="programlisting">
+<span class="identifier">T</span> <span class="identifier">UT</span><span class="special">::*</span> <span class="identifier">pm</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">UT</span><span class="special">::</span><span class="identifier">member_</span><span class="special">;</span>
+<span class="identifier">UT</span><span class="special">*</span> <span class="identifier">utp</span><span class="special">;</span>
+<span class="identifier">utp</span><span class="special">-&gt;*</span><span class="identifier">pm</span> <span class="special">=</span> <span class="number">88</span><span class="special">;</span>
+</pre>
+<p>
+ If UT had overloaded the pointer to member operator, OT should do the same
+ think
+ </p>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">OT</span> <span class="special">:</span> <span class="identifier">new_class</span><span class="special">&lt;</span><span class="identifier">OT</span><span class="special">,</span><span class="identifier">UT</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="identifier">T</span> <span class="identifier">UT</span><span class="special">::*</span> <span class="identifier">pmt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">UT</span><span class="special">::*</span> <span class="identifier">pm</span><span class="special">)</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">underlying</span><span class="special">().</span><span class="identifier">member_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">T</span> <span class="identifier">member</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">underlying</span><span class="special">().</span><span class="identifier">member_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="identifier">T</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">-&gt;*(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="special">(</span><span class="identifier">OT</span><span class="special">::*</span> <span class="identifier">m</span><span class="special">)())</span> <span class="special">{</span>
+
+ <span class="special">}</span>
+<span class="special">};</span>
+
+
+<span class="identifier">T</span> <span class="identifier">UT</span><span class="special">::*</span> <span class="identifier">pm</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">UT</span><span class="special">::</span><span class="identifier">member_</span><span class="special">;</span>
+<span class="identifier">T</span><span class="special">&amp;</span> <span class="special">(</span><span class="identifier">OT</span><span class="special">::*</span> <span class="identifier">pm</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">OT</span><span class="special">::</span><span class="identifier">member</span><span class="special">;</span>
+<span class="identifier">UT</span><span class="special">*</span> <span class="identifier">utp</span><span class="special">;</span>
+<span class="identifier">utp</span><span class="special">-&gt;*</span><span class="identifier">pm</span> <span class="special">=</span> <span class="number">88</span><span class="special">;</span>
+
+<span class="identifier">OT</span><span class="special">*</span> <span class="identifier">otp</span><span class="special">;</span>
+<span class="identifier">otp</span><span class="special">-&gt;*</span><span class="identifier">pm</span><span class="special">()</span> <span class="special">=</span> <span class="number">88</span><span class="special">;</span>
+</pre>
 </div>
 </div>
 <div class="section" lang="en">
@@ -735,7 +824,8 @@
 <p>
           The following template IdentifierGenarator can be used for this propose
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">IdentifierGenarator</span>
 <span class="special">{</span>
     <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">opaque</span><span class="special">::</span><span class="identifier">new_type</span><span class="special">&lt;</span><span class="identifier">UT</span><span class="special">,</span> <span class="identifier">Tag</span><span class="special">,</span>
@@ -745,7 +835,8 @@
 <p>
           The class can be used as follows
         </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">ConnectionIdentifierTag</span> <span class="special">{};</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">ConnectionIdentifierTag</span> <span class="special">{};</span>
 <span class="keyword">typedef</span> <span class="identifier">IdentifierGenarator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">ConnectionIdentifierTag</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">ConnectionIdentifier</span><span class="special">;</span>
 </pre>
 </div>
@@ -759,26 +850,24 @@
 <dl>
 <dt><span class="term">N2141: Strong Typedefs in C++09(Revisited)</span></dt>
 <dd><p>
- Alisdair Meredith
- </p></dd>
+ Alisdair Meredith
+ </p></dd>
 <dt><span class="term">N1891: Progress toward Opaque Typedefs for C++0X</span></dt>
 <dd><p>
- Walter E. Brown
- </p></dd>
+ Walter E. Brown
+ </p></dd>
 <dt><span class="term">N1706: Toward Opaque Typedefs in C++0X</span></dt>
 <dd><p>
- Walter E. Brown
- </p></dd>
-<dt><span class="term"><a href="http://www.gimpel.com/html/strong.htm" target="_top"><span class="bold"><strong>PC-lint/FlexeLint
- Strong Type Checking</strong></span></a></span></dt>
+ Walter E. Brown
+ </p></dd>
+<dt><span class="term">PC-lint/FlexeLint Strong Type Checking</span></dt>
 <dd><p>
- Gimpel Software
- </p></dd>
-<dt><span class="term"><a href="http://www.drdobbs.com/184401633" target="_top"><span class="bold"><strong>True
- typedefs</strong></span></a></span></dt>
+ Gimpel Software
+ </p></dd>
+<dt><span class="term">True typedefs</span></dt>
 <dd><p>
- Matthew Wilson
- </p></dd>
+ Matthew Wilson
+ </p></dd>
 </dl>
 </div>
 </div>
@@ -863,7 +952,8 @@
 <p>
         Include all the opaque public header files.
       </p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">opaque</span><span class="special">/</span><span class="identifier">opaque</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">opaque</span><span class="special">/</span><span class="identifier">opaque</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -878,7 +968,9 @@
 <dt><span class="section"><a href="index.html#boost.opaque.reference.new_class_hpp.opaque_static_cast">
         Non-Member Function Template <code class="computeroutput"><span class="identifier">opaque_static_cast</span><span class="special">&lt;&gt;</span></code></a></span></dt>
 </dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
     <span class="keyword">class</span> <span class="identifier">base_new_type</span><span class="special">;</span>
 
     <span class="keyword">template</span> <span class="special">&lt;</span>
@@ -898,6 +990,7 @@
     <span class="special">&gt;</span>
     <span class="identifier">T</span> <span class="identifier">opaque_static_cast</span><span class="special">(</span><span class="identifier">new_class</span><span class="special">&lt;</span><span class="identifier">Final</span><span class="special">,</span> <span class="identifier">UT</span><span class="special">,</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
 <span class="special">}</span>
+<span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -905,7 +998,8 @@
         Class Template base_new_type&lt;&gt;">
         Class Template <code class="computeroutput"><span class="identifier">base_new_type</span><span class="special">&lt;&gt;</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">base_new_type</span> <span class="special">{};</span>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">base_new_type</span> <span class="special">{};</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -924,23 +1018,24 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Can instances of UT be explicitly converted to instances of OT? Yes
- </li>
+ Can instances of UT be explicitly converted to instances of OT? Yes
+ </li>
 <li>
- Can instances of convertible to UT be explicitly converted to instances
- of OT? Yes
- </li>
+ Can instances of convertible to UT be explicitly converted to instances
+ of OT? Yes
+ </li>
 <li>
- Can instances of UT be implicitly converted to instances of OT? No
- </li>
+ Can instances of UT be implicitly converted to instances of OT? No
+ </li>
 <li>
- Can instances of OT be explicitly converted to instances of UT? No
- </li>
+ Can instances of OT be explicitly converted to instances of UT? No
+ </li>
 <li>
- Can instances of OT be implicitly converted to instances of UT? No
- </li>
+ Can instances of OT be implicitly converted to instances of UT? No
+ </li>
 </ul></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span>
@@ -982,21 +1077,23 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">UT</span></code> must be a model
- of a CopyCOnstructible and Assignable.
- </li>
+<code class="computeroutput"><span class="identifier">UT</span></code> must be a model of
+ a <code class="computeroutput"><span class="identifier">CopyConstructible</span></code> and
+ <code class="computeroutput"><span class="identifier">Assignable</span></code>.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Final</span></code> must be a model
- of FinalUnderlying.
- </li>
+<code class="computeroutput"><span class="identifier">Final</span></code> must be a model
+ of FinalUnderlying.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
- a model of FinalUnderlying: defaulted to the empty sequence.
- </li>
+<code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
+ a model of <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code>:
+ defaulted to the empty sequence.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
- the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
- </li>
+<code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
+ the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
+ </li>
 </ul></div>
 </div>
 <div class="section" lang="en">
@@ -1005,7 +1102,8 @@
         Non-Member Function Template opaque_static_cast&lt;&gt;">
         Non-Member Function Template <code class="computeroutput"><span class="identifier">opaque_static_cast</span><span class="special">&lt;&gt;</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
@@ -1019,17 +1117,18 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">T</span></code> and <code class="computeroutput"><span class="identifier">UT</span></code> must be a model of a CopyCOnstructible
- and Assignable.
- </li>
+<code class="computeroutput"><span class="identifier">T</span></code> and <code class="computeroutput"><span class="identifier">UT</span></code>
+ must be a model of a <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>
+ and <code class="computeroutput"><span class="identifier">Assignable</span></code>.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Final</span></code> must be a model
- of FinalUnderlying.
- </li>
+<code class="computeroutput"><span class="identifier">Final</span></code> must be a model
+ of FinalUnderlying.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
- a model of FinalUnderlying.
- </li>
+<code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
+ a model of <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code>.
+ </li>
 </ul></div>
 </div>
 </div>
@@ -1043,13 +1142,17 @@
 <dt><span class="section"><a href="index.html#boost.opaque.reference.new_type_hpp.opaque_static_cast">
         Non-Member Function Template Specialization <code class="computeroutput"><span class="identifier">opaque_static_cast</span><span class="special">&lt;&gt;</span></code></a></span></dt>
 </dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span>
         <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
         <span class="keyword">typename</span> <span class="identifier">Tag</span><span class="special">,</span>
         <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector0</span><span class="special">&lt;&gt;,</span>
         <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">=</span><span class="identifier">base_new_type</span><span class="special">&gt;</span>
     <span class="keyword">class</span> <span class="identifier">new_type</span><span class="special">;</span>
+<span class="special">}</span>
+<span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -1061,7 +1164,8 @@
           <code class="computeroutput"><span class="identifier">new_type</span><span class="special">&lt;&gt;</span></code>
           provides the equivalent of <code class="computeroutput"><span class="identifier">new_class</span><span class="special">&lt;&gt;</span></code> but can be used as a typedef.
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">Tag</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span>
@@ -1082,21 +1186,23 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">UT</span></code> must be a model
- of a CopyCOnstructible and Assignable.
- </li>
+<code class="computeroutput"><span class="identifier">UT</span></code> must be a model of
+ a <code class="computeroutput"><span class="identifier">CopyConstructible</span></code> and
+ <code class="computeroutput"><span class="identifier">Assignable</span></code>.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Tag</span></code> must be a unique
- class.
- </li>
+<code class="computeroutput"><span class="identifier">Tag</span></code> must be a unique
+ class.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
- a model of FinalUnderlying: defaulted to the empty sequence.
- </li>
+<code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
+ a model of <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code>:
+ defaulted to the empty sequence.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
- the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
- </li>
+<code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
+ the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
+ </li>
 </ul></div>
 </div>
 <div class="section" lang="en">
@@ -1105,7 +1211,8 @@
         Non-Member Function Template Specialization opaque_static_cast&lt;&gt;">
         Non-Member Function Template Specialization <code class="computeroutput"><span class="identifier">opaque_static_cast</span><span class="special">&lt;&gt;</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">Tag</span><span class="special">,</span>
@@ -1122,7 +1229,8 @@
 </h3></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.boolean_hpp.boolean"> Class
         <code class="computeroutput"><span class="identifier">boolean</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
     <span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
         <span class="keyword">class</span> <span class="identifier">boolean</span><span class="special">;</span>
     <span class="special">}</span>
@@ -1134,7 +1242,8 @@
         boolean"> Class
         <code class="computeroutput"><span class="identifier">boolean</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">boolean</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">boolean</span> <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
     <span class="keyword">explicit</span> <span class="identifier">boolean</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">b</span><span class="special">);</span>
 
@@ -1160,7 +1269,9 @@
 <dt><span class="section"><a href="index.html#boost.opaque.reference.private_opaque_class_hpp.private_opaque_class">
         Class Template <code class="computeroutput"><span class="identifier">private_opaque_class</span><span class="special">&lt;&gt;</span></code></a></span></dt>
 </dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
     <span class="keyword">class</span> <span class="identifier">base_private_opaque_type</span><span class="special">;</span>
     <span class="keyword">template</span> <span class="special">&lt;</span>
         <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
@@ -1170,6 +1281,7 @@
     <span class="special">&gt;</span>
     <span class="keyword">class</span> <span class="identifier">private_opaque_class</span><span class="special">;</span>
 <span class="special">}</span>
+<span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -1180,7 +1292,8 @@
 <p>
           This is the base class of all the private opaque types.
         </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">base_private_opaque_type</span> <span class="special">{};</span>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">base_private_opaque_type</span> <span class="special">{};</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -1194,29 +1307,29 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Can instances of UT be explicitly converted to instances of OT? Yes
- </li>
+ Can instances of UT be explicitly converted to instances of OT? Yes
+ </li>
 <li>
- Can instances of convertibles to UT be explicitly converted to instances
- of OT? Yes
- </li>
+ Can instances of convertibles to UT be explicitly converted to instances
+ of OT? Yes
+ </li>
 <li>
- Can instances of UT be implicitly converted to instances of OT? No
- </li>
+ Can instances of UT be implicitly converted to instances of OT? No
+ </li>
 <li>
- Can instances of OT be explicitly converted to instances of UT? Yes.
- </li>
+ Can instances of OT be explicitly converted to instances of UT? Yes.
+ </li>
 <li>
- Can instances of OT be explicitly converted to instances of convertible
- to UT? Yes
- </li>
+ Can instances of OT be explicitly converted to instances of convertible
+ to UT? Yes
+ </li>
 <li>
- Can instances of OT be implicitly converted to instances of UT? No
- </li>
+ Can instances of OT be implicitly converted to instances of UT? No
+ </li>
 <li>
- Can instances of OT be implicitly converted to instances of convertible
- to UT? No
- </li>
+ Can instances of OT be implicitly converted to instances of convertible
+ to UT? No
+ </li>
 </ul></div>
 <div class="note"><table border="0" summary="Note">
 <tr>
@@ -1224,8 +1337,9 @@
 <th align="left">Note</th>
 </tr>
 <tr><td align="left" valign="top"><p>
- Waiting for explicit conversion operators, the explicit conversion must
- be done through the underlying function
+ On compilers don't supporting explicit conversion operators, the explicit
+ conversion must be done through the <code class="computeroutput"><span class="identifier">underlying</span></code>
+ function
           </p></td></tr>
 </table></div>
 <p>
@@ -1237,7 +1351,8 @@
           explicit conversions to all the substituables. The nested typedef <code class="computeroutput"><span class="identifier">substituables</span></code> is the MPL sequence of
           all the UT in the opaque type hierarchy.
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span>
@@ -1263,6 +1378,7 @@
     <span class="keyword">explicit</span> <span class="identifier">private_opaque_class</span><span class="special">(</span><span class="identifier">UT</span> <span class="identifier">v</span><span class="special">);</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">W</span><span class="special">&gt;</span>
     <span class="keyword">explicit</span> <span class="identifier">private_opaque_class</span><span class="special">(</span><span class="identifier">W</span> <span class="identifier">v</span><span class="special">);</span>
+ <span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="identifier">UT</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 </div>
@@ -1275,7 +1391,9 @@
 </h3></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.private_opaque_type_hpp.private_opaque_type">
         Class Template <code class="computeroutput"><span class="identifier">private_opaque_type</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span>
         <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
         <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
@@ -1284,6 +1402,7 @@
     <span class="special">&gt;</span>
     <span class="keyword">class</span> <span class="identifier">private_opaque_type</span><span class="special">;</span>
 <span class="special">}</span>
+<span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -1295,7 +1414,8 @@
           <code class="computeroutput"><span class="identifier">private_opaque_type</span><span class="special">&lt;&gt;</span></code>
           provides the equivalent of <code class="computeroutput"><span class="identifier">private_opaque_class</span><span class="special">&lt;&gt;</span></code> but can be used as a typedef.
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span>
@@ -1320,21 +1440,23 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">UT</span></code> must be a model
- of a CopyCOnstructible and Assignable.
- </li>
+<code class="computeroutput"><span class="identifier">UT</span></code> must be a model of
+ a <code class="computeroutput"><span class="identifier">CopyConstructible</span></code> and
+ <code class="computeroutput"><span class="identifier">Assignable</span></code>.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Tag</span></code> must be a unique
- class.
- </li>
+<code class="computeroutput"><span class="identifier">Tag</span></code> must be a unique
+ class.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
- a model of FinalUnderlying: defaulted to the empty sequence.
- </li>
+<code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
+ a model of <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code>:
+ defaulted to the empty sequence.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
- the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
- </li>
+<code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
+ the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
+ </li>
 </ul></div>
 </div>
 </div>
@@ -1352,7 +1474,9 @@
 <dt><span class="section"><a href="index.html#boost.opaque.reference.public_opaque_class_hpp.public_opaque_class">
         Class Template <code class="computeroutput"><span class="identifier">public_opaque_class</span><span class="special">&lt;&gt;</span></code></a></span></dt>
 </dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
     <span class="keyword">class</span> <span class="identifier">base_public_opaque_type</span><span class="special">;</span>
 
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -1366,6 +1490,7 @@
     <span class="special">&gt;</span>
     <span class="keyword">class</span> <span class="identifier">public_opaque_class</span><span class="special">;</span>
 <span class="special">}</span>
+<span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -1376,7 +1501,8 @@
 <p>
           This is the base class of all the public opaque types.
         </p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">base_public_opaque_type</span> <span class="special">{};</span>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">base_public_opaque_type</span> <span class="special">{};</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -1385,7 +1511,8 @@
         Class Template get_substituables&lt;&gt;">
         Class Template <code class="computeroutput"><span class="identifier">get_substituables</span><span class="special">&lt;&gt;</span></code></a>
 </h4></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">get_substituables</span> <span class="special">{</span>
     <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
 <span class="special">}</span>
@@ -1406,25 +1533,25 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Can instances of UT be explicitly converted to instances of OT? Yes
- </li>
+ Can instances of UT be explicitly converted to instances of OT? Yes
+ </li>
 <li>
- Can instances of UT be implicitly converted to instances of OT? No
- </li>
+ Can instances of UT be implicitly converted to instances of OT? No
+ </li>
 <li>
- Can instances of OT be explicitly converted to instances of UT? Yes
- </li>
+ Can instances of OT be explicitly converted to instances of UT? Yes
+ </li>
 <li>
- Can instances of OT be explicitly converted to instances of convertible
- to UT? Yes
- </li>
+ Can instances of OT be explicitly converted to instances of convertible
+ to UT? Yes
+ </li>
 <li>
- Can instances of OT be implicitly converted to instances of UT? Yes
- </li>
+ Can instances of OT be implicitly converted to instances of UT? Yes
+ </li>
 <li>
- Can instances of OT be implicitly converted to instances of convertible
- to UT? Yes
- </li>
+ Can instances of OT be implicitly converted to instances of convertible
+ to UT? Yes
+ </li>
 </ul></div>
 <p>
           <code class="computeroutput"><span class="identifier">public_opaque_class</span><span class="special">&lt;&gt;</span></code>
@@ -1435,7 +1562,8 @@
           the substituables. The nested typedef <code class="computeroutput"><span class="identifier">substituables</span></code>
           is the MPL sequence of all the UT in the opaque type hierarchy.
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector0</span><span class="special">&lt;&gt;,</span>
@@ -1475,7 +1603,9 @@
 </h3></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.public_opaque_type_hpp.public_opaque_type">
         Class Template <code class="computeroutput"><span class="identifier">public_opaque_type</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<span class="keyword">namespace</span> <span class="identifier">opaque</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span>
         <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
         <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
@@ -1484,6 +1614,7 @@
     <span class="special">&gt;</span>
     <span class="keyword">class</span> <span class="identifier">public_opaque_type</span><span class="special">;</span>
 <span class="special">}</span>
+<span class="special">}</span>
 </pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
@@ -1492,10 +1623,11 @@
         Class Template <code class="computeroutput"><span class="identifier">public_opaque_type</span><span class="special">&lt;&gt;</span></code></a>
 </h4></div></div></div>
 <p>
- <code class="computeroutput"><span class="identifier">private_opaque_typublic_opaque_typepe</span><span class="special">&lt;&gt;</span></code> provides the equivalent of <code class="computeroutput"><span class="identifier">public_opaque_class</span><span class="special">&lt;&gt;</span></code>
- but can be used as a typedef.
+ <code class="computeroutput"><span class="identifier">public_opaque_type</span><span class="special">&lt;&gt;</span></code>
+ provides the equivalent of <code class="computeroutput"><span class="identifier">public_opaque_class</span><span class="special">&lt;&gt;</span></code> but can be used as a typedef.
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span>
     <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">,</span>
     <span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span>
@@ -1520,21 +1652,23 @@
         </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">UT</span></code> must be a model
- of a CopyCOnstructible and Assignable.
- </li>
+<code class="computeroutput"><span class="identifier">UT</span></code> must be a model of
+ a <code class="computeroutput"><span class="identifier">CopyConstructible</span></code> and
+ <code class="computeroutput"><span class="identifier">Assignable</span></code>.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Tag</span></code> must be a unique
- class.
- </li>
+<code class="computeroutput"><span class="identifier">Tag</span></code> must be a unique
+ class.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
- a model of FinalUnderlying: defaulted to the empty sequence.
- </li>
+<code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code> must be
+ a model of <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code>:
+ defaulted to the empty sequence.
+ </li>
 <li>
- <code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
- the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
- </li>
+<code class="computeroutput"><span class="identifier">Base</span></code> is defaulted to
+ the base class of all the new types <code class="computeroutput"><span class="identifier">base_new_type</span></code>.
+ </li>
 </ul></div>
 </div>
 </div>
@@ -1629,13 +1763,14 @@
           </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">final</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">)</span></code>
- return the <code class="computeroutput"><span class="identifier">Final</span><span class="special">&amp;</span></code> reference associated to <code class="computeroutput"><span class="identifier">b</span></code>.
- </li>
-<li>
- <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">final</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">)</span></code>
- returns the <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Final</span><span class="special">&amp;</span></code> reference associated to <code class="computeroutput"><span class="identifier">bc</span></code>.
- </li>
+<code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">final</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">)</span></code>
+ return the <code class="computeroutput"><span class="identifier">Final</span><span class="special">&amp;</span></code>
+ reference associated to <code class="computeroutput"><span class="identifier">b</span></code>.
+ </li>
+<li>
+<code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">final</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">)</span></code>
+ returns the <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Final</span><span class="special">&amp;</span></code> reference associated to <code class="computeroutput"><span class="identifier">bc</span></code>.
+ </li>
 </ul></div>
 </div>
 <div class="section" lang="en">
@@ -1652,34 +1787,33 @@
             Let <code class="computeroutput"><span class="identifier">B</span></code> a base class of
             <code class="computeroutput"><span class="identifier">Final</span></code>, <code class="computeroutput"><span class="identifier">b</span></code> an instance of <code class="computeroutput"><span class="identifier">B</span></code>,
             <code class="computeroutput"><span class="identifier">bc</span></code> an instance of <code class="computeroutput"><span class="identifier">B</span> <span class="keyword">const</span></code>,
- <code class="computeroutput"><span class="identifier">f</span></code> an instace of <code class="computeroutput"><span class="identifier">Final</span></code> and fc and instance of `Final
- const '.
+ <code class="computeroutput"><span class="identifier">f</span></code> an instace of <code class="computeroutput"><span class="identifier">Final</span></code> and <code class="computeroutput"><span class="identifier">fc</span></code>
+ and instance of `Final const '.
           </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
- <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span></code> the underlying
- type
- </li>
-<li>
- <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">)</span></code>
- return a reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span><span class="special">&amp;</span></code> associated to <code class="computeroutput"><span class="identifier">b</span></code>.
- </li>
-<li>
- <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying</span><span class="special">(&amp;</span><span class="identifier">bc</span><span class="special">)</span></code>
- return a constant reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span>
- <span class="keyword">const</span><span class="special">&amp;</span></code>
- associated to <code class="computeroutput"><span class="identifier">bc</span></code>.
- </li>
-<li>
- <code class="computeroutput"><span class="identifier">f</span><span class="special">.</span><span class="identifier">underlying</span><span class="special">()</span></code>
- return a reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span><span class="special">&amp;</span></code> associated to <code class="computeroutput"><span class="identifier">f</span></code>.
- </li>
-<li>
- <code class="computeroutput"><span class="identifier">fc</span><span class="special">.</span><span class="identifier">underlying</span><span class="special">()</span></code>
- return a constant reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span>
- <span class="keyword">const</span><span class="special">&amp;</span></code>
- associated to <code class="computeroutput"><span class="identifier">fc</span></code>.
- </li>
+<code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span></code> the underlying type.
+ </li>
+<li>
+<code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying</span><span class="special">(&amp;</span><span class="identifier">b</span><span class="special">)</span></code>
+ return a reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span><span class="special">&amp;</span></code> associated to <code class="computeroutput"><span class="identifier">b</span></code>.
+ </li>
+<li>
+<code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying</span><span class="special">(&amp;</span><span class="identifier">bc</span><span class="special">)</span></code>
+ return a constant reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span>
+ <span class="keyword">const</span><span class="special">&amp;</span></code>
+ associated to <code class="computeroutput"><span class="identifier">bc</span></code>.
+ </li>
+<li>
+<code class="computeroutput"><span class="identifier">f</span><span class="special">.</span><span class="identifier">underlying</span><span class="special">()</span></code>
+ return a reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span><span class="special">&amp;</span></code> associated to <code class="computeroutput"><span class="identifier">f</span></code>.
+ </li>
+<li>
+<code class="computeroutput"><span class="identifier">fc</span><span class="special">.</span><span class="identifier">underlying</span><span class="special">()</span></code>
+ return a constant reference to <code class="computeroutput"><span class="identifier">Final</span><span class="special">::</span><span class="identifier">underlying_type</span>
+ <span class="keyword">const</span><span class="special">&amp;</span></code>
+ associated to <code class="computeroutput"><span class="identifier">fc</span></code>.
+ </li>
 </ul></div>
 </div>
 <div class="section" lang="en">
@@ -1690,12 +1824,13 @@
 </h5></div></div></div>
 <p>
             A Mixin is a template class having two template parameters, the Final
- type and the Base type. The Final parameter must satisfy the Final requirements.
+ type and the Base type.
           </p>
 <p>
             The archetype of a Mixin is
           </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">MixinArchetype</span> <span class="special">:</span> <span class="identifier">Base</span>
 <span class="special">{</span>
     <span class="special">...</span>
@@ -1717,7 +1852,8 @@
             A MetaMixin is a meta-function having as nested type a Mixin. The archetype
             of a MetaMixin is
           </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">MetaMixinArchetype</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">MetaMixinArchetype</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">type</span> <span class="special">:</span> <span class="identifier">Base</span>
     <span class="special">{</span>
@@ -1751,7 +1887,8 @@
 </h4></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.meta_mixins.linear_hierarchy_hpp.linear_hierarchy">
           Class Template <code class="computeroutput"><span class="identifier">linear_hierarchy</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
     <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">linear_hierarchy</span><span class="special">;</span>
 <span class="special">}</span>
@@ -1765,10 +1902,11 @@
 <p>
             The <code class="computeroutput"><span class="identifier">linear_hierarchy</span></code>
             metafunction gererates a linear hierarchy by folding the Mixins obtained
- by application of the <code class="computeroutput"><span class="identifier">MetaMixin</span></code>
+ by application of the <code class="computeroutput"><span class="identifier">MetaMixin</span></code>s
             in <code class="computeroutput"><span class="identifier">MetaMixinSeq</span></code>.
           </p>
-<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">MetaMixinSeq</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">linear_hierarchy</span> <span class="special">{</span>
     <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
 <span class="special">};</span>
@@ -1787,7 +1925,8 @@
 </h4></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.meta_mixins.inherited_from_underlying_hpp.inherited_from_underlying">
           Class Template <code class="computeroutput"><span class="identifier">inherited_from_underlying</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Bool</span><span class="special">=</span><span class="keyword">bool</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">inherited_from_underlying</span><span class="special">;</span>
 <span class="special">}</span>
@@ -1798,7 +1937,8 @@
           Class Template inherited_from_underlying&lt;&gt;">
           Class Template <code class="computeroutput"><span class="identifier">inherited_from_underlying</span><span class="special">&lt;&gt;</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Bool</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Bool</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">inherited_from_underlying</span><span class="special">;</span>
 </pre>
 <p>
@@ -1807,22 +1947,18 @@
             adds wrapping member to the underlyibg type <code class="computeroutput"><span class="identifier">UT</span></code>.
           </p>
 <p>
- This class must specialized for specific types in order to make easier
+ This class must be specialized for specific types in order to make easier
             the construction of opaque types having <code class="computeroutput"><span class="identifier">UT</span></code>
             as underlying type. For example the library provide specializations for
- each one of the buil-in types.
+ each one of the built-in types.
           </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Bool</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Bool</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">inherited_from_underlying</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Final</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">type</span><span class="special">;</span> <span class="comment">//implementation defined
 </span><span class="special">};</span>
 </pre>
-<p>
- template &lt;typename Bool&gt; struct inherited_from_underlying&lt;int&gt;
- { template &lt;typename Final, typename Base&gt; struct type; //implementation
- defined };
- </p>
 </div>
 </div>
 <div class="section" lang="en">
@@ -1844,8 +1980,8 @@
           Operators</a></span></dt>
 </dl></div>
 <p>
- This file includes meta-mixins that are used to add un operator overloads
- forwarding from the Final type to the underlying type. There is a meta-mixins
+ This file includes meta-mixins that are used to add an operator overload
+ forwarding from the final type to the underlying type. There is a meta-mixin
           for each one of the C++ overloadable operators.
         </p>
 <p>
@@ -1882,7 +2018,8 @@
 <p>
             In the following table the meta-mixin follows the schema
           </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">meta</span><span class="special">-</span><span class="identifier">mixins</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">struct</span> <span class="identifier">meta</span><span class="special">-</span><span class="identifier">mixin</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">NT</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">type</span><span class="special">:</span> <span class="identifier">Base</span> <span class="special">{</span>
         <span class="comment">// Supplied Operation
@@ -1891,32 +2028,42 @@
 </pre>
 <div class="itemizedlist"><ul type="disc">
 <li>
- NT/NT2 is expected to satisfy the FinalUnderlying requirements.
- </li>
+<code class="computeroutput"><span class="identifier">NT</span></code>/<code class="computeroutput"><span class="identifier">NT2</span></code>
+ is expected to satisfy the <code class="computeroutput"><span class="identifier">FinalUnderlying</span></code>
+ requirements.
+ </li>
 <li>
- UT stands for NT::underlying_type
- </li>
+<code class="computeroutput"><span class="identifier">UT</span></code> stands for <code class="computeroutput"><span class="identifier">NT</span><span class="special">::</span><span class="identifier">underlying_type</span></code>.
+ </li>
 <li>
- UT2 stands for NT2::underlying_type
- </li>
+<code class="computeroutput"><span class="identifier">UT2</span></code> stands for <code class="computeroutput"><span class="identifier">NT2</span><span class="special">::</span><span class="identifier">underlying_type</span></code>.
+ </li>
 <li>
- this_ut is the instance UT reference obtained NT::underlying(this)
- </li>
+<code class="computeroutput"><span class="identifier">this_ut</span></code> is the instance
+ <code class="computeroutput"><span class="identifier">UT</span></code> reference obtained
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">::</span><span class="identifier">underlying</span><span class="special">(</span><span class="keyword">this</span><span class="special">)</span></code>.
+ </li>
 <li>
- lhs is a NT/NT2 const reference
- </li>
+<code class="computeroutput"><span class="identifier">lhs</span></code> is a <code class="computeroutput"><span class="identifier">NT</span></code>/<code class="computeroutput"><span class="identifier">NT2</span>
+ <span class="keyword">const</span></code> reference.
+ </li>
 <li>
- rhs is a NT/NT2 const reference
- </li>
+<code class="computeroutput"><span class="identifier">rhs</span></code> is a <code class="computeroutput"><span class="identifier">NT</span></code>/<code class="computeroutput"><span class="identifier">NT2</span>
+ <span class="keyword">const</span></code> reference.
+ </li>
 <li>
- lhs_ut is the instance UT reference obtained lhs.underlying()
- </li>
+<code class="computeroutput"><span class="identifier">lhs_ut</span></code> is the instance
+ <code class="computeroutput"><span class="identifier">UT</span></code> reference obtained
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">.</span><span class="identifier">underlying</span><span class="special">()</span></code>.
+ </li>
 <li>
- rhs_ut is the instance UT reference obtained rhs.underlying()
- </li>
+<code class="computeroutput"><span class="identifier">rhs_ut</span></code> is the instance
+ <code class="computeroutput"><span class="identifier">UT</span></code> reference obtained
+ <code class="computeroutput"><span class="identifier">rhs</span><span class="special">.</span><span class="identifier">underlying</span><span class="special">()</span></code>.
+ </li>
 </ul></div>
 <div class="table">
-<a name="boost.opaque.reference.meta_mixins.using_operators_hpp.arithmetic_operators.relational_operators"></a><p class="title"><b>Table&#160;1.&#160;Relational operators</b></p>
+<a name="id5007590"></a><p class="title"><b>Table&#160;1.&#160;Relational operators</b></p>
 <table class="table" summary="Relational operators">
 <colgroup>
 <col>
@@ -1926,344 +2073,345 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
- </th>
+ <p>
+ Meta-Mixin
+ </p>
+ </th>
 <th>
- <p>
- Supplied Operation
- </p>
- </th>
+ <p>
+ Supplied Operation
+ </p>
+ </th>
 <th>
- <p>
- Requirements
- </p>
- </th>
+ <p>
+ Requirements
+ </p>
+ </th>
 <th>
- <p>
- Ref
- </p>
- </th>
+ <p>
+ Ref
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">==</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">==</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_not_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_not_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">!=</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">!=</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;=</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;=</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_greater_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_greater_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;=</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;=</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_greater_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_greater_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span>
+ <span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">==</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">==</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_not_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_not_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">!=</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">!=</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;=</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;=</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_greater_than_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_greater_than_equal2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;=</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;=</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_greater_than2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_greater_than2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">,</span> <span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
 </div>
 <div class="table">
-<a name="boost.opaque.reference.meta_mixins.using_operators_hpp.arithmetic_operators.numeric_operators"></a><p class="title"><b>Table&#160;2.&#160;Numeric operators</b></p>
+<a name="id5009354"></a><p class="title"><b>Table&#160;2.&#160;Numeric operators</b></p>
 <table class="table" summary="Numeric operators">
 <colgroup>
 <col>
@@ -2273,666 +2421,666 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
- </th>
+ <p>
+ Meta-Mixin
+ </p>
+ </th>
 <th>
- <p>
- Supplied Operation
- </p>
- </th>
+ <p>
+ Supplied Operation
+ </p>
+ </th>
 <th>
- <p>
- Requirements
- </p>
- </th>
+ <p>
+ Requirements
+ </p>
+ </th>
 <th>
- <p>
- Ref
- </p>
- </th>
+ <p>
+ Ref
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_plus</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_plus</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">+</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">+</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_plus_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_plus_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">+=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">+=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_minus</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_minus</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">-</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">-</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_minus_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_minus_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">-=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">-=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiply</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiply</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">*</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">*</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiply_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiply_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">*=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">*=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_divide</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_divide</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">/</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">/</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_divide_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_divide_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">/=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">/=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_modulus</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_modulus</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">%</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">%</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_modulus_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_modulus_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">%=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">%=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_unary_plus</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_unary_plus</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">+()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">+()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(+</span><span class="identifier">this_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(+</span><span class="identifier">this_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_unary_minus</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_unary_minus</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">-()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">-()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(-</span><span class="identifier">this_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(-</span><span class="identifier">this_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_pre_increment</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_pre_increment</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">++()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">++()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="special">++</span><span class="identifier">this_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="special">++</span><span class="identifier">this_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_pre_decrement</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_pre_decrement</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">--()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">--()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="special">--</span><span class="identifier">this_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="special">--</span><span class="identifier">this_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_post_increment</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_post_increment</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span><span class="special">++</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span><span class="special">++</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_post_decrement</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_post_decrement</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span><span class="special">++</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span><span class="special">++</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_plus2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_plus2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">+</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">+</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_plus_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_plus_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">+=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">+=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_minus2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_minus2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">-</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">-</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_minus_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_minus_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">-=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">-=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiply2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiply2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">*</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">*</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiply_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiply_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">*=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">*=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_divide2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_divide2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">/</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">/</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_divide_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_divide_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">/=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">/=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_modulus2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_modulus2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">%</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">%</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_modulus_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_modulus_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">%=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">%=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
 </div>
 <div class="table">
-<a name="boost.opaque.reference.meta_mixins.using_operators_hpp.arithmetic_operators.bitwise_operators"></a><p class="title"><b>Table&#160;3.&#160;Bitwise operators</b></p>
+<a name="id5012357"></a><p class="title"><b>Table&#160;3.&#160;Bitwise operators</b></p>
 <table class="table" summary="Bitwise operators">
 <colgroup>
 <col>
@@ -2942,548 +3090,548 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
- </th>
+ <p>
+ Meta-Mixin
+ </p>
+ </th>
 <th>
- <p>
- Supplied Operation
- </p>
- </th>
+ <p>
+ Supplied Operation
+ </p>
+ </th>
 <th>
- <p>
- Requirements
- </p>
- </th>
+ <p>
+ Requirements
+ </p>
+ </th>
 <th>
- <p>
- Ref
- </p>
- </th>
+ <p>
+ Ref
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_not</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_not</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">~()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">~()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(~</span><span class="identifier">this_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(~</span><span class="identifier">this_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">^=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">^=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_and_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_and_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&amp;=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&amp;=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_or_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_or_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">|=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">|=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_right_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_right_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&lt;&lt;=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&lt;&lt;=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_right_shift_assign</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_right_shift_assign</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">NT</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&gt;&gt;=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&gt;&gt;=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xor</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xor</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">^</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">^</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_or</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_or</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">|</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">|</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_and</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_and</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&amp;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&amp;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_shift1</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_shift1</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;&lt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;&lt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_right_shift1</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_right_shift1</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;&gt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xor2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xor2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">^</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">^</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">^=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">^=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_or2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_or2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">|</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">|</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_and2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_and2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&amp;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&amp;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_and_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_and_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&amp;=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&amp;=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_or_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_or_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">|=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">|=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_shift2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_shift2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;&lt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&lt;&lt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_right_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_right_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&lt;&lt;=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&lt;&lt;=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_right_shift2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_right_shift2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span>
- <span class="identifier">NT2</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span>
+ <span class="identifier">NT2</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;&gt;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_right_shift_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_right_shift_assign2</span><span class="special">&lt;</span><span class="identifier">NT2</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">NT2</span><span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&gt;&gt;=</span>
- <span class="identifier">rhs_ut</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">this_ut</span> <span class="special">&gt;&gt;=</span>
+ <span class="identifier">rhs_ut</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
@@ -3496,7 +3644,7 @@
           Operators</a>
 </h5></div></div></div>
 <div class="table">
-<a name="boost.opaque.reference.meta_mixins.using_operators_hpp.logical_operators.logical_operators"></a><p class="title"><b>Table&#160;4.&#160;Logical operators</b></p>
+<a name="id5014974"></a><p class="title"><b>Table&#160;4.&#160;Logical operators</b></p>
 <table class="table" summary="Logical operators">
 <colgroup>
 <col>
@@ -3506,100 +3654,100 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
- </th>
+ <p>
+ Meta-Mixin
+ </p>
+ </th>
 <th>
- <p>
- Supplied Operation
- </p>
- </th>
+ <p>
+ Supplied Operation
+ </p>
+ </th>
 <th>
- <p>
- Requirements
- </p>
- </th>
+ <p>
+ Requirements
+ </p>
+ </th>
 <th>
- <p>
- Ref
- </p>
- </th>
+ <p>
+ Ref
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_logical_not</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_logical_not</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">!()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">!()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(!</span><span class="identifier">this_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(!</span><span class="identifier">this_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.1
- </p>
- </td>
+ <p>
+ 13.5.1
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_logical_and</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_logical_and</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&amp;&amp;(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">&amp;&amp;(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&amp;&amp;</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">&amp;&amp;</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_logical_or</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_logical_or</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">||(</span><span class="keyword">const</span>
- <span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="identifier">rhs</span><span class="special">)</span>
- <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span> <span class="keyword">operator</span><span class="special">||(</span><span class="keyword">const</span>
+ <span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="identifier">rhs</span><span class="special">)</span>
+ <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">||</span>
- <span class="identifier">rhs_ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Bool</span><span class="special">(</span><span class="identifier">this_ut</span> <span class="special">||</span>
+ <span class="identifier">rhs_ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 13.5.2
- </p>
- </td>
+ <p>
+ 13.5.2
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
@@ -3612,7 +3760,7 @@
           Operators</a>
 </h5></div></div></div>
 <div class="table">
-<a name="boost.opaque.reference.meta_mixins.using_operators_hpp.conversion_operators.conversion_operators"></a><p class="title"><b>Table&#160;5.&#160;Conversion Operators</b></p>
+<a name="id5015420"></a><p class="title"><b>Table&#160;5.&#160;Conversion Operators</b></p>
 <table class="table" summary="Conversion Operators">
 <colgroup>
 <col>
@@ -3622,92 +3770,92 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
- </th>
+ <p>
+ Meta-Mixin
+ </p>
+ </th>
 <th>
- <p>
- Supplied Operation
- </p>
- </th>
+ <p>
+ Supplied Operation
+ </p>
+ </th>
 <th>
- <p>
- Requirements
- </p>
- </th>
+ <p>
+ Requirements
+ </p>
+ </th>
 <th>
- <p>
- Ref
- </p>
- </th>
+ <p>
+ Ref
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_underlying_conversion</span><span class="special">&lt;</span><span class="identifier">UT</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_underlying_conversion</span><span class="special">&lt;</span><span class="identifier">UT</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">UT</span><span class="special">()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">UT</span><span class="special">()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- None
- </p>
- </td>
+ <p>
+ None
+ </p>
+ </td>
 <td>
- <p>
- 12.3.2
- </p>
- </td>
+ <p>
+ 12.3.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_conversion_to</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_conversion_to</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="identifier">ut</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="identifier">ut</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 12.3.2
- </p>
- </td>
+ <p>
+ 12.3.2
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_safe_bool_conversion</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_safe_bool_conversion</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">unspecified_bool_type</span><span class="special">()</span> <span class="keyword">const</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">unspecified_bool_type</span><span class="special">()</span> <span class="keyword">const</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">ut</span><span class="special">?</span><span class="keyword">true</span><span class="special">:</span><span class="keyword">false</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ut</span><span class="special">?</span><span class="keyword">true</span><span class="special">:</span><span class="keyword">false</span></code>
+ </p>
+ </td>
 <td>
- <p>
- 12.3.2
- </p>
- </td>
+ <p>
+ 12.3.2
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
@@ -3720,7 +3868,7 @@
           Operators</a>
 </h5></div></div></div>
 <div class="table">
-<a name="boost.opaque.reference.meta_mixins.using_operators_hpp.dereference_operators.dereference_operators"></a><p class="title"><b>Table&#160;6.&#160;Dereference Operators</b></p>
+<a name="id5015762"></a><p class="title"><b>Table&#160;6.&#160;Dereference Operators</b></p>
 <table class="table" summary="Dereference Operators">
 <colgroup>
 <col>
@@ -3730,142 +3878,154 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
- </th>
+ <p>
+ Meta-Mixin
+ </p>
+ </th>
 <th>
- <p>
- Supplied Operation
- </p>
- </th>
+ <p>
+ Supplied Operation
+ </p>
+ </th>
 <th>
- <p>
- Requirements
- </p>
- </th>
+ <p>
+ Requirements
+ </p>
+ </th>
 <th>
- <p>
- Ref
- </p>
- </th>
+ <p>
+ Ref
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_address_of</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_address_of</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">&amp;()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">&amp;()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- ??
- </p>
- </td>
+ <p>
+ ??
+ </p>
+ </td>
 <td>
- </td>
+ <p>
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_address_of2</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_address_of2</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span> <span class="keyword">operator</span><span class="special">&amp;()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span> <span class="keyword">operator</span><span class="special">&amp;()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- ??
- </p>
- </td>
+ <p>
+ ??
+ </p>
+ </td>
 <td>
- </td>
+ <p>
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_derreference</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_derreference</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">*()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">*()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- ??
- </p>
- </td>
+ <p>
+ ??
+ </p>
+ </td>
 <td>
- </td>
+ <p>
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_derreference</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_derreference</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">R</span> <span class="keyword">operator</span><span class="special">*()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">R</span> <span class="keyword">operator</span><span class="special">*()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- ??
- </p>
- </td>
+ <p>
+ ??
+ </p>
+ </td>
 <td>
- </td>
+ <p>
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_member_access</span><span class="special">&lt;</span><span class="identifier">P</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_member_access</span><span class="special">&lt;</span><span class="identifier">P</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">P</span> <span class="keyword">operator</span><span class="special">-&gt;()</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">P</span> <span class="keyword">operator</span><span class="special">-&gt;()</span></code>
+ </p>
+ </td>
 <td>
- <p>
- ??
- </p>
- </td>
+ <p>
+ ??
+ </p>
+ </td>
 <td>
- </td>
+ <p>
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_subscript</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_subscript</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">,</span><span class="identifier">T</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">D</span><span class="special">)</span></code>
- </p>
- </td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">D</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
- <p>
- ??
- </p>
- </td>
+ <p>
+ ??
+ </p>
+ </td>
 <td>
- </td>
+ <p>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
@@ -3886,82 +4046,88 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
+ <p>
+ Meta-Mixin
+ </p>
                   </th>
 <th>
- <p>
- Supplied Operation
- </p>
+ <p>
+ Supplied Operation
+ </p>
                   </th>
 <th>
- <p>
- Requirements
- </p>
+ <p>
+ Requirements
+ </p>
                   </th>
 <th>
- <p>
- Ref
- </p>
+ <p>
+ Ref
+ </p>
                   </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_comma</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_comma</span></code>
+ </p>
                   </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">,()</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span> <span class="keyword">operator</span><span class="special">,()</span></code>
+ </p>
                   </td>
 <td>
- <p>
- ??
- </p>
+ <p>
+ ??
+ </p>
                   </td>
 <td>
+ <p>
+ </p>
                   </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_function_call</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_function_call</span></code>
+ </p>
                   </td>
 <td>
- <p>
- <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span><span class="special">()()</span></code>
+ </p>
                   </td>
 <td>
- <p>
- ??
- </p>
+ <p>
+ ??
+ </p>
                   </td>
 <td>
+ <p>
+ </p>
                   </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_pointer_to_member</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_pointer_to_member</span></code>
+ </p>
                   </td>
 <td>
- <p>
- <code class="computeroutput"><span class="keyword">operator</span><span class="special">-&gt;*()</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span><span class="special">-&gt;*()</span></code>
+ </p>
                   </td>
 <td>
- <p>
- ??
- </p>
+ <p>
+ ??
+ </p>
                   </td>
 <td>
+ <p>
+ </p>
                   </td>
 </tr>
 </tbody>
@@ -3992,70 +4158,70 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
+ <p>
+ Meta-Mixin
+ </p>
                 </th>
 <th>
- <p>
- Hidden Operation
- </p>
+ <p>
+ Hidden Operation
+ </p>
                 </th>
 <th>
- <p>
- Requirements
- </p>
+ <p>
+ Requirements
+ </p>
                 </th>
 <th>
- <p>
- Ref
- </p>
+ <p>
+ Ref
+ </p>
                 </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">hiding_assignment</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">hiding_assignment</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
- <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">NT</span> <span class="keyword">const</span><span class="special">&amp;)</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">&amp;</span>
+ <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">NT</span> <span class="keyword">const</span><span class="special">&amp;)</span></code>
+ </p>
                 </td>
 <td>
- <p>
- None
- </p>
+ <p>
+ None
+ </p>
                 </td>
 <td>
- <p>
- 13.5.3
- </p>
+ <p>
+ 13.5.3
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">hiding_copy_constructor</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">hiding_copy_constructor</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">NT</span> <span class="keyword">const</span><span class="special">&amp;)</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">NT</span><span class="special">(</span><span class="identifier">NT</span> <span class="keyword">const</span><span class="special">&amp;)</span></code>
+ </p>
                 </td>
 <td>
- <p>
- None
- </p>
+ <p>
+ None
+ </p>
                 </td>
 <td>
- <p>
- 13.5.3
- </p>
+ <p>
+ 13.5.3
+ </p>
                 </td>
 </tr>
 </tbody>
@@ -4095,250 +4261,274 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
+ <p>
+ Meta-Mixin
+ </p>
                 </th>
 <th>
- <p>
- Meta-Mixin Sequence
- </p>
+ <p>
+ Meta-Mixin Sequence
+ </p>
                 </th>
 <th>
- <p>
- Ref
- </p>
+ <p>
+ Ref
+ </p>
                 </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_equality_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_equality_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>,
- <br> <code class="computeroutput"><span class="identifier">using_not_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>,
+ <br> <code class="computeroutput"><span class="identifier">using_not_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- 20.1.1
- </p>
+ <p>
+ 20.1.1
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_less_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_less_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- 20.1.2
- </p>
+ <p>
+ 20.1.2
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_partially_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_partially_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_less_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_less_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_less_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_less_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than_equal</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_greater_than</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- 20.1.2
- </p>
+ <p>
+ 20.1.2
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_addable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_addable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_plus_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_plus</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_plus_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_plus</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_subtractable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_subtractable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_minus_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_minus</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_minus_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_minus</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multipliable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multipliable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiply_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_multiply</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiply_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_multiply</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_dividable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_dividable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_divide_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_divide</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_divide_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_divide</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_modable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_modable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_modulus_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_modulus</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_modulus_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_modulus</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xorable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xorable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_bitwise_xor</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_bitwise_xor</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_orable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_orable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_or_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_bitwise_or</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_or_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_bitwise_or</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_andable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_andable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_and_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_bitwise_and</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_and_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_bitwise_and</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_shiftable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_shiftable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_right_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_left_shift1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_right_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_left_shift1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_right_shiftable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_right_shiftable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_right_shift_assign</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_right_shift1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_right_shift_assign</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_right_shift1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_incrementable</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_incrementable</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_pre_increment</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_post_increment</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_pre_increment</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_post_increment</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_decrementable</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_decrementable</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_pre_decrement</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_post_decrement</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_pre_decrement</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_post_decrement</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 </tbody>
@@ -4351,215 +4541,241 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Meta-Mixin
- </p>
+ <p>
+ Meta-Mixin
+ </p>
                 </th>
 <th>
- <p>
- Meta-Mixin Sequence
- </p>
+ <p>
+ Meta-Mixin Sequence
+ </p>
                 </th>
 <th>
- <p>
- Ref
- </p>
+ <p>
+ Ref
+ </p>
                 </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_totally_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_totally_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_equality_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_less_than_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_equality_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code> <br> <code class="computeroutput"><span class="identifier">using_less_than_comparable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_additive1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_additive1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_addable1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_subtractable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_addable1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_subtractable1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiplicative1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiplicative1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multipliable1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_dividable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multipliable1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_dividable1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">integer_multiplicative1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">integer_multiplicative1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_multiplicative1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_modable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_multiplicative1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_modable1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_arithmetic1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_arithmetic1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_additive1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_multiplicative1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_additive1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_multiplicative1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_integer_arithmetic1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_integer_arithmetic1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_additive1</span></code>
- <br> <code class="computeroutput"><span class="identifier">integer_multiplicative1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_additive1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">integer_multiplicative1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_bitwise_xorable1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_bitwise_orable1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_bitwise_andable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_bitwise_xorable1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_bitwise_orable1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_bitwise_andable1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_unit_steppable</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_unit_steppable</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_incrementable</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_decrementable</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_incrementable</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_decrementable</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_shiftable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_shiftable1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_left_shiftable1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_right_shiftable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_left_shiftable1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_right_shiftable1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_ring_operators1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_ring_operators1</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_additive1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_multipliable1</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_additive1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_multipliable1</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_ordered_ring_operators1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_ordered_ring_operators1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_ring_operators1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_totally_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_ring_operators1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_totally_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_field_operators1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_field_operators1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_ring_operators1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_dividable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_ring_operators1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_dividable1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 <tr>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_ordered_field_operators1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_ordered_field_operators1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
- <p>
- <code class="computeroutput"><span class="identifier">using_field_operators1</span></code>
- <br> <code class="computeroutput"><span class="identifier">using_totally_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
- </p>
+ <p>
+ <code class="computeroutput"><span class="identifier">using_field_operators1</span></code>
+ <br> <code class="computeroutput"><span class="identifier">using_totally_ordered1</span><span class="special">&lt;</span><span class="identifier">Bool</span><span class="special">&gt;</span></code>
+ </p>
                 </td>
 <td>
+ <p>
+ </p>
                 </td>
 </tr>
 </tbody>
@@ -4588,7 +4804,8 @@
 </h4></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.meta_mixins.transitive_substituable_hpp.transitive_substituable">
           Class Template <code class="computeroutput"><span class="identifier">transitive_substituable</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseClass</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">transitive_substituable</span><span class="special">;</span>
 <span class="special">}</span>
@@ -4603,7 +4820,8 @@
             This meta-mixin provides the Final class implicit conversions for all
             the underlying types hierarchy.
           </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseClass</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseClass</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">transitive_substituable</span><span class="special">;</span>
 </pre>
 </div>
@@ -4616,7 +4834,8 @@
 </h4></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="index.html#boost.opaque.reference.meta_mixins.transitive_explicit_substituable_hpp.transitive_explicit_substituable">
           Class Template <code class="computeroutput"><span class="identifier">transitive_explicit_substituable</span><span class="special">&lt;&gt;</span></code></a></span></dt></dl></div>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+<pre class="programlisting">
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseClass</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">&gt;</span>
     <span class="keyword">struct</span> <span class="identifier">transitive_explicit_substituable</span><span class="special">;</span>
 <span class="special">}</span>
@@ -4627,7 +4846,8 @@
           Class Template transitive_explicit_substituable&lt;&gt;">
           Class Template <code class="computeroutput"><span class="identifier">transitive_explicit_substituable</span><span class="special">&lt;&gt;</span></code></a>
 </h5></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseClass</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">&gt;</span>
+<pre class="programlisting">
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseClass</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UT</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">transitive_explicit_substituable</span><span class="special">;</span>
 </pre>
 <p>
@@ -4677,8 +4897,8 @@
           <span class="bold"><strong>Features:</strong></span>
         </p>
 <div class="itemizedlist"><ul type="disc"><li>
- a
- </li></ul></div>
+ a
+ </li></ul></div>
 </div>
 </div>
 <div class="section" lang="en">
@@ -4688,7 +4908,7 @@
       Rationale</a>
 </h3></div></div></div>
 <a name="boost.opaque.appendices.rationale.lala"></a><h4>
-<a name="id5018428"></a>
+<a name="id5019602"></a>
         <a href="index.html#boost.opaque.appendices.rationale.lala">lala</a>
       </h4>
 </div>
@@ -4699,7 +4919,7 @@
       Implementation Notes</a>
 </h3></div></div></div>
 <a name="boost.opaque.appendices.implementation.lala"></a><h4>
-<a name="id5018466"></a>
+<a name="id5019640"></a>
         <a href="index.html#boost.opaque.appendices.implementation.lala">lala</a>
       </h4>
 </div>
@@ -4729,7 +4949,7 @@
 <a name="boost.opaque.appendices.appendix_e__tests.new_class"></a>new_class
 </h4></div></div></div>
 <div class="table">
-<a name="boost.opaque.appendices.appendix_e__tests.new_class.contructors_and_assignement"></a><p class="title"><b>Table&#160;7.&#160;Contructors and Assignement</b></p>
+<a name="id5019710"></a><p class="title"><b>Table&#160;7.&#160;Contructors and Assignement</b></p>
 <table class="table" summary="Contructors and Assignement">
 <colgroup>
 <col>
@@ -4739,142 +4959,142 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Name
- </p>
- </th>
-<th>
- <p>
- kind
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-<th>
- <p>
- Result
- </p>
- </th>
+ <p>
+ Name
+ </p>
+ </th>
+<th>
+ <p>
+ kind
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Result
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- regular_pass
- </p>
- </td>
+ <p>
+ regular_pass
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
 <td>
- <p>
- check constructors and assignements
- </p>
- </td>
+ <p>
+ check constructors and assignements
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- assign_siblings_fail
- </p>
- </td>
+ <p>
+ assign_siblings_fail
+ </p>
+ </td>
 <td>
- <p>
- compile-fail
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check siblings assignement fail
- </p>
- </td>
+ <p>
+ check siblings assignement fail
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- assign_up_fail
- </p>
- </td>
+ <p>
+ assign_up_fail
+ </p>
+ </td>
 <td>
- <p>
- compile-fail
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check NT can not be assigned to UT
- </p>
- </td>
+ <p>
+ check NT can not be assigned to UT
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- assign_down_fail
- </p>
- </td>
+ <p>
+ assign_down_fail
+ </p>
+ </td>
 <td>
- <p>
- compile-fail
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check UT can not be assigned to NT
- </p>
- </td>
+ <p>
+ check UT can not be assigned to NT
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- copy_construct_from_non_convertible_fail
- </p>
- </td>
+ <p>
+ copy_construct_from_non_convertible_fail
+ </p>
+ </td>
 <td>
- <p>
- compile-fail
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check constructor from non convertibe to UT fails
- </p>
- </td>
+ <p>
+ check constructor from non convertibe to UT fails
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
 </div>
 <div class="table">
-<a name="boost.opaque.appendices.appendix_e__tests.new_class.relational_operators"></a><p class="title"><b>Table&#160;8.&#160;Relational Operators</b></p>
+<a name="id5019906"></a><p class="title"><b>Table&#160;8.&#160;Relational Operators</b></p>
 <table class="table" summary="Relational Operators">
 <colgroup>
 <col>
@@ -4884,989 +5104,309 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Name
- </p>
- </th>
-<th>
- <p>
- kind
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-<th>
- <p>
- Result
- </p>
- </th>
+ <p>
+ Name
+ </p>
+ </th>
+<th>
+ <p>
+ kind
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Result
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- using_equal_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">==</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_equal</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_not_equal_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">!=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_not_equal</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_less_than_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_less_than</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_less_than_equal_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;=</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_less_than_equal</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_greater_than_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_greater_than</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_greater_than_equal_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;=</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_greater_than_equal</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- equal_fail
- </p>
- </td>
-<td>
- <p>
- compile-fail
- </p>
- </td>
-<td>
- <p>
- check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">==</span></code> fail on default new_class
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- not_equal_fail
- </p>
- </td>
-<td>
- <p>
- compile-fail
- </p>
- </td>
-<td>
- <p>
- check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">!=</span></code> fail on default new_class
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- less_than_equal_fail
- </p>
- </td>
-<td>
- <p>
- compile-fail
- </p>
- </td>
-<td>
- <p>
- check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;=</span></code> fail on default new_class
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- less_than_fail
- </p>
- </td>
+ <p>
+ using_equal_pass
+ </p>
+ </td>
 <td>
- <p>
- compile-fail
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
 <td>
- <p>
- check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;</span></code> fail on default new_class
- </p>
- </td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">==</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_equal</span></code>
+ meta-mixin
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- greater_than_equal_fail
- </p>
- </td>
-<td>
- <p>
- compile-fail
- </p>
- </td>
-<td>
- <p>
- check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;=</span></code> fail on default new_class
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- greater_than_fail
- </p>
- </td>
-<td>
- <p>
- compile-fail
- </p>
- </td>
-<td>
- <p>
- check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;</span></code> fail on default new_class
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="table">
-<a name="boost.opaque.appendices.appendix_e__tests.new_class.arithmetic_operators"></a><p class="title"><b>Table&#160;9.&#160;Arithmetic Operators</b></p>
-<table class="table" summary="Arithmetic Operators">
-<colgroup>
-<col>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Name
- </p>
- </th>
-<th>
- <p>
- kind
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-<th>
- <p>
- Result
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- using_plus_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">+</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_plus</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_plus_assign_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">+=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_plus_assign</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_minus_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">-</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_minus</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_minus_assign_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">-=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_minus_assign</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_multiply_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">*</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_multiply</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_multiply_assign_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">*=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_multiply_assign</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_divide_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">/</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_divide</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_divide_assign_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">/=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_divide_assign</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_modulus_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">%</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_modulus</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_modulus_assign_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">%=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_modulus_assign</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_unary_plus_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">+()</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_unary_plus</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_unary_minus_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">-()</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_unary_minus</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_pre_increment_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">++()</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_pre_increment</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_post_increment_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_post_increment</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_pre_decrement_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">--()</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_pre_decrement</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- using_post_decrement_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_post_decrement</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="table">
-<a name="boost.opaque.appendices.appendix_e__tests.new_class.bitwise_operators"></a><p class="title"><b>Table&#160;10.&#160;Bitwise Operators</b></p>
-<table class="table" summary="Bitwise Operators">
-<colgroup>
-<col>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Name
- </p>
- </th>
-<th>
- <p>
- kind
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-<th>
- <p>
- Result
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- using_bitwise_not_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">~</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_not</span></code> meta-mixin
- </p>
- </td>
+ <p>
+ using_not_equal_pass
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">!=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_not_equal</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_bitwise_xor_pass
- </p>
- </td>
+ <p>
+ using_less_than_pass
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">^</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_xor</span></code> meta-mixin
- </p>
- </td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_less_than</span></code>
+ meta-mixin
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_bitwise_xor_assign_pass
- </p>
- </td>
+ <p>
+ using_less_than_equal_pass
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">^=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign</span></code> meta-mixin
- </p>
- </td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_less_than_equal</span></code>
+ meta-mixin
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_bitwise_or_pass
- </p>
- </td>
+ <p>
+ using_greater_than_pass
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">|</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_or</span></code> meta-mixin
- </p>
- </td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_greater_than</span></code>
+ meta-mixin
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_bitwise_or_assign_pass
- </p>
- </td>
+ <p>
+ using_greater_than_equal_pass
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ run
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">|=</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_or_assign</span></code> meta-mixin
- </p>
- </td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_greater_than_equal</span></code>
+ meta-mixin
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_bitwise_and_pass
- </p>
- </td>
+ <p>
+ equal_fail
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&amp;</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_bitwise_and</span></code>
- meta-mixin
- </p>
- </td>
+ <p>
+ check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">==</span></code> fail on default new_class
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_bitwise_and_assign_pass
- </p>
- </td>
+ <p>
+ not_equal_fail
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&amp;=</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_bitwise_and_assign</span></code>
- meta-mixin
- </p>
- </td>
+ <p>
+ check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">!=</span></code> fail on default new_class
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_left_shift_pass
- </p>
- </td>
+ <p>
+ less_than_equal_fail
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;&lt;</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_left_shift</span></code>
- meta-mixin
- </p>
- </td>
+ <p>
+ check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;=</span></code> fail on default new_class
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_left_shift_assign_pass
- </p>
- </td>
+ <p>
+ less_than_fail
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;&lt;=</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_left_shift_assign</span></code>
- meta-mixin
- </p>
- </td>
+ <p>
+ check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;</span></code> fail on default new_class
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_right_shift_pass
- </p>
- </td>
+ <p>
+ greater_than_equal_fail
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;&gt;</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_right_shift</span></code>
- meta-mixin
- </p>
- </td>
+ <p>
+ check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;=</span></code> fail on default new_class
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 <tr>
 <td>
- <p>
- using_right_shift_assign_pass
- </p>
- </td>
+ <p>
+ greater_than_fail
+ </p>
+ </td>
 <td>
- <p>
- run
- </p>
- </td>
+ <p>
+ compile-fail
+ </p>
+ </td>
 <td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;&gt;=</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_right_shift_assign</span></code>
- meta-mixin
- </p>
- </td>
+ <p>
+ check check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;</span></code> fail on default new_class
+ </p>
+ </td>
 <td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
 </div>
 <div class="table">
-<a name="boost.opaque.appendices.appendix_e__tests.new_class.logical_operators"></a><p class="title"><b>Table&#160;11.&#160;Logical Operators</b></p>
-<table class="table" summary="Logical Operators">
+<a name="id5020561"></a><p class="title"><b>Table&#160;9.&#160;Arithmetic Operators</b></p>
+<table class="table" summary="Arithmetic Operators">
 <colgroup>
 <col>
 <col>
@@ -5875,94 +5415,816 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Name
- </p>
- </th>
-<th>
- <p>
- kind
- </p>
- </th>
-<th>
- <p>
- Description
- </p>
- </th>
-<th>
- <p>
- Result
- </p>
- </th>
+ <p>
+ Name
+ </p>
+ </th>
+<th>
+ <p>
+ kind
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Result
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
 <td>
- <p>
- using_logical_not_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">!</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_logical_not</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ using_plus_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">+</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_plus</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_plus_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">+=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_plus_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_minus_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">-</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_minus</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_minus_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">-=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_minus_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_multiply_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">*</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_multiply</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_multiply_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">*=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_multiply_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_divide_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">/</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_divide</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_divide_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">/=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_divide_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_modulus_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">%</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_modulus</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_modulus_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">%=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_modulus_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_unary_plus_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">+()</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_unary_plus</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_unary_minus_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">-()</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_unary_minus</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_pre_increment_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">++()</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_pre_increment</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_post_increment_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">)</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_post_increment</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_pre_decrement_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">--()</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_pre_decrement</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_post_decrement_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">)</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_post_decrement</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id5021522"></a><p class="title"><b>Table&#160;10.&#160;Bitwise Operators</b></p>
+<table class="table" summary="Bitwise Operators">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Name
+ </p>
+ </th>
+<th>
+ <p>
+ kind
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Result
+ </p>
+ </th>
+</tr></thead>
+<tbody>
 <tr>
 <td>
- <p>
- using_logical_and_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&amp;&amp;</span></code> is available when adding
- <code class="computeroutput"><span class="identifier">using_logical_and</span></code>
- meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ using_bitwise_not_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">~</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_not</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_bitwise_xor_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">^</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_xor</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_bitwise_xor_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">^=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_xor_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_bitwise_or_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">|</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_or</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_bitwise_or_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">|=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_or_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_bitwise_and_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&amp;</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_and</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_bitwise_and_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&amp;=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_bitwise_and_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_left_shift_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;&lt;</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_left_shift</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_left_shift_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&lt;&lt;=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_left_shift_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_right_shift_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;&gt;</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_right_shift</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_right_shift_assign_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&gt;&gt;=</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_right_shift_assign</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<a name="id5022189"></a><p class="title"><b>Table&#160;11.&#160;Logical Operators</b></p>
+<table class="table" summary="Logical Operators">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Name
+ </p>
+ </th>
+<th>
+ <p>
+ kind
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Result
+ </p>
+ </th>
+</tr></thead>
+<tbody>
 <tr>
 <td>
- <p>
- using_logical_or_pass
- </p>
- </td>
-<td>
- <p>
- run
- </p>
- </td>
-<td>
- <p>
- check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">||</span></code> is available when adding <code class="computeroutput"><span class="identifier">using_logical_and</span></code> meta-mixin
- </p>
- </td>
-<td>
- <p>
- Pass
- </p>
- </td>
+ <p>
+ using_logical_not_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">!</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_logical_not</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_logical_and_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">&amp;&amp;</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_logical_and</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ using_logical_or_pass
+ </p>
+ </td>
+<td>
+ <p>
+ run
+ </p>
+ </td>
+<td>
+ <p>
+ check <code class="computeroutput"><span class="identifier">oparator</span><span class="special">||</span></code>
+ is available when adding <code class="computeroutput"><span class="identifier">using_logical_and</span></code>
+ meta-mixin
+ </p>
+ </td>
+<td>
+ <p>
+ Pass
+ </p>
+ </td>
 </tr>
 </tbody>
 </table>
@@ -5981,46 +6243,46 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Name
- </p>
+ <p>
+ Name
+ </p>
                 </th>
 <th>
- <p>
- kind
- </p>
+ <p>
+ kind
+ </p>
                 </th>
 <th>
- <p>
- Description
- </p>
+ <p>
+ Description
+ </p>
                 </th>
 <th>
- <p>
- Result
- </p>
+ <p>
+ Result
+ </p>
                 </th>
 </tr></thead>
 <tbody><tr>
 <td>
- <p>
- regular.pass
- </p>
+ <p>
+ regular.pass
+ </p>
                 </td>
 <td>
- <p>
- run
- </p>
+ <p>
+ run
+ </p>
                 </td>
 <td>
- <p>
- check constructors and assignements
- </p>
+ <p>
+ check constructors and assignements
+ </p>
                 </td>
 <td>
- <p>
- Pass
- </p>
+ <p>
+ Pass
+ </p>
                 </td>
 </tr></tbody>
 </table></div>
@@ -6038,46 +6300,46 @@
 </colgroup>
 <thead><tr>
 <th>
- <p>
- Name
- </p>
+ <p>
+ Name
+ </p>
                 </th>
 <th>
- <p>
- kind
- </p>
+ <p>
+ kind
+ </p>
                 </th>
 <th>
- <p>
- Description
- </p>
+ <p>
+ Description
+ </p>
                 </th>
 <th>
- <p>
- Result
- </p>
+ <p>
+ Result
+ </p>
                 </th>
 </tr></thead>
 <tbody><tr>
 <td>
- <p>
- regular.pass
- </p>
+ <p>
+ regular.pass
+ </p>
                 </td>
 <td>
- <p>
- run
- </p>
+ <p>
+ run
+ </p>
                 </td>
 <td>
- <p>
- check constructors and assignements
- </p>
+ <p>
+ check constructors and assignements
+ </p>
                 </td>
 <td>
- <p>
- Pass
- </p>
+ <p>
+ Pass
+ </p>
                 </td>
 </tr></tbody>
 </table></div>
@@ -6093,23 +6355,23 @@
 <a name="boost.opaque.appendices.todo"></a> Appendix F: Future plans
 </h3></div></div></div>
 <a name="boost.opaque.appendices.todo.tasks_to_do_before_review"></a><h4>
-<a name="id5021692"></a>
+<a name="id5022637"></a>
         <a href="index.html#boost.opaque.appendices.todo.tasks_to_do_before_review">Tasks
         to do before review</a>
       </h4>
 <div class="itemizedlist"><ul type="disc">
 <li>
- Complete the tests
- </li>
+ Complete the tests
+ </li>
 <li>
- Add hiding meta-mixins
- </li>
+ Add hiding meta-mixins
+ </li>
 </ul></div>
 </div>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 04, 2010 at 20:36:10 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 16, 2011 at 22:23:27 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/opaque/libs/opaque/doc/opaque.qbk
==============================================================================
--- sandbox/opaque/libs/opaque/doc/opaque.qbk (original)
+++ sandbox/opaque/libs/opaque/doc/opaque.qbk 2011-01-16 17:25:22 EST (Sun, 16 Jan 2011)
@@ -25,13 +25,6 @@
                            and casting is brass]]
 [:[*['-- ]]]
 
-[/
-[section Preface]
-
-
-[endsect]
-/]
-
 [warning Opaque is not a part of the Boost libraries.]
 
 [/========================]
@@ -54,7 +47,7 @@
 * If a name refers to a class template, it is specified like this: `class_template<>`; that is, it is in code font and its name is followed by `<>` to indicate that it is a class template.
 * If a name refers to a function-like macro, it is specified like this: `MACRO()`;
   that is, it is uppercase in code font and its name is followed by `()` to indicate that it is a function-like macro. Object-like macros appear without the trailing `()`.
-* Names that refer to /concepts/ in the generic programming sense are specified in CamelCase.
+* Names that refer to /concepts/ in the generic programming sense are specified in CamelCase.
 
 [note In addition, notes such as this one specify non-essential information that provides additional background or rationale.]
 
@@ -69,7 +62,7 @@
 
 The notion of "opaque typedefs" is a recurring theme (see []). Boost.Serialization contains a macro which is used to define what Robert calls "strong typedefs", but the implementation is not complete.
 
-The Walter E. Brown's proposals () includes a clear motivation for "opaque typedefs".
+The Walter E. Brown's proposals ([@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1891.pdf [*N1891: Progress toward Opaque Typedefs for C++0X] and [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1706.pdf [*N1706: Toward Opaque Typedefs in C++0X]]]) include a clear motivation for "opaque typedefs".
 
 [/
 The characteristic feature desired of an opaque typedef is the ability to overload functions and operators based on one or more newly-defined opaque-types. For example, we would wish to overload the constructors in a `PhysicsVector` class such that each constructor corresponds to a distinct coordinate system. Using Boost/Opaque, we can code this as:
@@ -102,7 +95,7 @@
 # Application of inheritance makes no provision that permits a base class to be cv-qualified.
 ]
 
-In Alisdair Meredith showed in [] the implicitly generating forwarding constructors to a base class new C++0x feature could not be useful to address this issue completly. Using this new feature it becomes possible to create something very like the required opaque typedef. For example:
+Alisdair Meredith showed in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2141.html [*N2141: Strong Typedefs in C++09(Revisited)]] that the new C++0x feature that implicitly generates forward constructors to a base class, could not be useful to address this issue completly. Using this new feature it becomes possible to create something very like the required opaque typedef. For example:
 
     struct MyType : std::string {
         using string::string;
@@ -110,7 +103,7 @@
 
 This type is distrinct from `std::string`, functions can be overloaded on this type as well as `std::string`, yet `std::string` is not convertible to this type.
 
-As this proposals will not be part of the C++0x standard, a library solution that could satisfy most of the requirements seems a loable approach.
+As this proposals will not be part of the C++0x standard, a library solution that could satisfy most of the requirements seems a loable alternative.
 
 
 [endsect]
@@ -148,7 +141,7 @@
 [heading Getting Boost.Opaque]
 [/=================================]
 
-You can get the last stable release of [*Boost.Opaque] by downloading [^ppaque.zip] from the
+You can get the last stable release of [*Boost.Opaque] by downloading [^opaque.zip] from the
 [@http://www.boostpro.com/vault/index.php?action=downloadfile&filename=opaque.zip&directory=Utilities& Boost Vault Utilities directory]
 
 You can also access the latest (unstable?) state from the [@https://svn.boost.org/svn/boost/sandbox/opaque Boost Sandbox].
@@ -190,7 +183,6 @@
 Windows with
 
 * MSVC 10.0
-* MSVC 9.0 Express
 
 Cygwin 1.5 with
 
@@ -205,6 +197,8 @@
 * GCC 4.4.0
 * GCC 4.5.0
 * GCC 4.5.0 C++0x
+* GCC 4.6.0
+* GCC 4.6.0 C++0x
 
 [note Please send any questions, comments and bug reports to boost <at> lists <dot> boost <dot> org.]
 
@@ -225,7 +219,7 @@
 
 [section How to define a real new typedef?]
 
-We will start with the definition of a new type identifier which is based on an underlying int type and has the relational operators so it can be stored on a sorted container.
+We will start with the definition of a new type identifier which is based on an underlying `int` type and has the relational operators so it can be stored on a sorted container.
 
     struct Identifier_tag;
     typedef boost::opaque::new_type< int, Identifier_tag,
@@ -238,27 +232,27 @@
 
     struct Identifier_tag;
 
-New we use the opaque new_type class which has as parameters:
+New we use the opaque `new_type` class which has as parameters:
 
 * the underlying type (`int`),
-* the unique tag of the new type (`Identifier_tag`),
+* the unique tag of the `new type` (`Identifier_tag`),
 * a MPL sequence of additions (`mpl::vector<opaque::using_totally_ordered1>`)
 
-This will declare Identifier as new type different from `int` that provides just the operation associated to a `totally_ordered` concept. The concepts are represented by the library in the form a meta-mixin and are named with the `using_` prefix, e.g. as `using_totally_ordered1`.
+This will declare `Identifier` as new type different from `int` that provides just the operation associated to a `totally_ordered` concept. The concepts are represented by the library in the form a meta-mixin and are named with the `using_` prefix, e.g. as `using_totally_ordered1`. We will see later what a meta-mixin intends for.
 
-We can now use Identifier as new int type, but limited to the totally ordered operations.
+We can now use `Identifier` as new `int` type, but limited to the totally ordered operations.
 
-[*Boost.Opaque] provides a macros to simplify the preceding declaration
+[*Boost.Opaque] provides a macro to simplify the preceding declaration
 
- BOOST_OPAQUE_NEW_TYPE(int, Identifier, ((opaque::using_totally_ordered1)))
+ BOOST_OPAQUE_NEW_TYPE(int, Identifier, (opaque::using_totally_ordered1))
 
-The macros is responsable to define a uniqye tag and transform the preprocessor PPL sequence into a MPL sequence.
+The macros is responsable to define a unique tag and transform the preprocessor sequence into a MPL sequence.
 
 [endsect]
 
 [section How to define a real new type?]
 
-In the prededing example we use a tag to ensure type unicity. When the user needs to add yet some specific methods, this tag is no more necessary as we need to define already a new class.
+In the prededing example we have used a tag to ensure type unicity. When the user needs to add yet some specific methods, this tag is no more necessary as we need to define already a new class.
 
     class Identifier : boost::opaque::new_class<Identifier, int,
         boost::mpl::vector<
@@ -271,25 +265,25 @@
 
 In this case we use the mixin class `new_class` instead. The `new_class` class template has the following arguments,
 
-* the class we are defining
+* the final class we are defining
 * the underlying type (`int`),
-* a MPL sequence of additions (`mpl::vector<opaque::using_totally_ordered1>`)
+* a MPL sequence of additions `mpl::vector<opaque::using_totally_ordered1>`
 
 [*Boost.Opaque] provides a macro `BOOST_OPAQUE_NEW_CLASS` to simplify the preceding declaration
 
- BOOST_OPAQUE_NEW_CLASS(Identifier, int, ((opaque::using_totally_ordered1)))
+ BOOST_OPAQUE_NEW_CLASS(Identifier, int, (opaque::using_totally_ordered1))
     {
         void print();
         // ...
     }
 
-The macros is responsable to define a unique tag and transform the preprocessor PPL sequence into a MPL sequence.
+The macros is responsable to transform the preprocessor sequence into a MPL sequence.
 
 [endsect]
 
 [section Return type for relational operators: `opaque::boolean`]
 
-The following code doesn't warns in (1) when we use `0` where a `bool` is expected.
+The following code doesn't warms in (1) when we use the integer `0` where a `bool` is expected.
 
     typedef bool Bool;
     typedef int Int;
@@ -307,7 +301,7 @@
 
     Bool f(Int a, Int b)
     {
- if(cnd()) return 0; // (1) Error
+ if(cnd()) return 0; // (1) Error
         else return a > b; // (2) Error
     }
 
@@ -315,13 +309,13 @@
 
     Bool f(Int a, Int b)
     {
- if(cnd()) return opaque::false_; // OK
- else return a > b; // (2) Error
+ if(cnd()) return opaque::false_; // OK
+ else return a > b; // (2) Error
     }
 
-But now we also get an error on (2) as `a > b` is not convertible to `opaque::boolean`. To solve this issue we need that the signature `Int > Int` be convertible to `opaque::boolean`.
+But we also get an error on (2) as `a > b` is not convertible to `opaque::boolean`. To solve this issue we need that the signature `Int > Int` be convertible to `opaque::boolean`.
 
-[*Boost.Opaque] provides a meta-mixin that allos to define an integer-like class that use `opaque::boolean` as type for the result of the relational operators.
+[*Boost.Opaque] provides a meta-mixin that allow to define an integer-like class that use `opaque::boolean` as type for the result of the relational operators.
 
     struct Int_tag;
     typedef boost::opaque::new_type<int, Int_tag, boost::mpl::vector<
@@ -332,7 +326,7 @@
 
 Or using the macro
 
- BOOST_OPAQUE_NEW_TYPE(int, Int, ((opaque::using_integer_like<opaque::boolean>)))
+ BOOST_OPAQUE_NEW_TYPE(int, Int, (opaque::using_integer_like<opaque::boolean>))
 
 
 [endsect]
@@ -370,7 +364,7 @@
 Opaque typedef are explicitly convertible to the underlying type. But are they implicitly convertible? It depends. So the library provide two kind of opaque typedef :
 
 * public opaque typedef: implicit conversion to the underlying type
-* public opaque typedef: explict conversion to the underlying type
+* private opaque typedef: explict conversion to the underlying type
 
 
 
@@ -378,35 +372,32 @@
 
 [section Hiding inherited operations]
 
-Sometimes we want to inherit most of the operations inherited from the underlying type. We can either use the `new_type` class and bee explicit on which operation we want
+Sometimes we want to inherit most of the operations inherited from the underlying type. We can either use the `new_type` class and be explicit on which operation we want
 
- BOOST_OPAQUE_NEW_TYPE(UT, NT, (
+ BOOST_OPAQUE_NEW_TYPE(UT, NT,
         (opaque::using_ope1)
         (opaque::using_ope2)
         ...
         (opaque::using_open)
- ))
+ )
 
-Or we can use opaque types and state explicitly which operation wil be hidden.
+or we can use opaque types and state explicitly which operation will be hidden.
 
- BOOST_OPAQUE_PUBLIC_OPAQUE_TYPE(UT, NT, (
+ BOOST_OPAQUE_PUBLIC_OPAQUE_TYPE(UT, NT,
         (opaque::hiding_opeK)
- ))
+ )
 
 
 
 [endsect]
 [section Underlying types hierarchy]
 
-Opaque and underlying types form a hierarchy with a implicit or explicit conversion from the OT to the UT. This convertibility is a relation.
-It seems natural that this relation satisfy the transitivity property.
+Opaque and underlying types form a hierarchy with a implicit or explicit conversion from the OT to the UT. This convertibility is a relation. It seems natural that this relation satisfy the transitivity property.
 
 [endsect]
 
 [section Using UDT as Underlying types]
 
-Talk about the problem with direct member access that can not be wrapped by the underlying type.
-
 For example we can access the fisrt field of the UT pair, but the OT can not give this access. Instead the OT could define some function accessors that inderectly will almost behave as the data member.
 
     struct UT {
@@ -544,6 +535,7 @@
 [/==========================================================================================]
 
     namespace boost {
+ namespace opaque {
         class base_new_type;
 
         template <
@@ -563,6 +555,7 @@
>
         T opaque_static_cast(new_class<Final, UT, MetaMixinSeq, Base> const& v);
     }
+ }
 
 [/==========================================================================================]
 [section:base_new_type Class Template `base_new_type<>`]
@@ -626,9 +619,9 @@
 
 [*Requirements]
 
-* `UT` must be a model of a CopyCOnstructible and Assignable.
+* `UT` must be a model of a `CopyConstructible` and `Assignable`.
 * `Final` must be a model of FinalUnderlying.
-* `MetaMixinSeq` must be a model of FinalUnderlying: defaulted to the empty sequence.
+* `MetaMixinSeq` must be a model of `MetaMixinSeq`: defaulted to the empty sequence.
 * `Base` is defaulted to the base class of all the new types `base_new_type`.
 
 
@@ -649,9 +642,9 @@
 
 [*Requirements]
 
-* `T` and `UT` must be a model of a CopyCOnstructible and Assignable.
+* `T` and `UT` must be a model of a `CopyConstructible` and `Assignable`.
 * `Final` must be a model of FinalUnderlying.
-* `MetaMixinSeq` must be a model of FinalUnderlying.
+* `MetaMixinSeq` must be a model of `MetaMixinSeq`.
 
 [endsect]
 
@@ -661,12 +654,15 @@
 [/==========================================================================================]
 
     namespace boost {
+ namespace opaque {
         template <
             typename UT,
             typename Tag,
             typename MetaMixinSeq=boost::mpl::vector0<>,
             typename Base=base_new_type>
         class new_type;
+ }
+ }
 
 [/==========================================================================================]
 [section:new_type Class Template `new_type<>`]
@@ -692,9 +688,9 @@
 
 [*Requirements]
 
-* `UT` must be a model of a CopyCOnstructible and Assignable.
+* `UT` must be a model of a `CopyConstructible` and `Assignable`.
 * `Tag` must be a unique class.
-* `MetaMixinSeq` must be a model of FinalUnderlying: defaulted to the empty sequence.
+* `MetaMixinSeq` must be a model of `MetaMixinSeq`: defaulted to the empty sequence.
 * `Base` is defaulted to the base class of all the new types `base_new_type`.
 
 
@@ -756,6 +752,7 @@
 [/==========================================================================================]
 
     namespace boost {
+ namespace opaque {
         class base_private_opaque_type;
         template <
             typename Final,
@@ -765,6 +762,7 @@
>
         class private_opaque_class;
     }
+ }
 
 
 [/==========================================================================================]
@@ -791,7 +789,7 @@
 * Can instances of OT be implicitly converted to instances of UT? No
 * Can instances of OT be implicitly converted to instances of convertible to UT? No
 
-[note Waiting for explicit conversion operators, the explicit conversion must be done through the underlying function]
+[note On compilers don't supporting explicit conversion operators, the explicit conversion must be done through the `underlying` function]
 
 `private_opaque_class<>` is a `new_class` with the `transitive_explicit_substituable<base_private_opaque_type>` and `inherited_from_underlying<UT>` added to the sequence of meta-mixins MetaMixinSeq, so a `private_opaque_class` inherits from all the operations of tye underlying type and adds transitive explicit conversions to all the substituables. The nested typedef `substituables` is the MPL sequence of all the UT in the opaque type hierarchy.
 
@@ -823,6 +821,7 @@
         explicit private_opaque_class(UT v);
         template <typename W>
         explicit private_opaque_class(W v);
+ explicit operator UT() const;
     };
 
 [endsect]
@@ -834,6 +833,7 @@
 [/==========================================================================================]
 
     namespace boost {
+ namespace opaque {
         template <
             typename Final,
             typename UT,
@@ -842,6 +842,7 @@
>
         class private_opaque_type;
     }
+ }
 
 [/==========================================================================================]
 [section:private_opaque_type Class Template `private_opaque_type<>`]
@@ -871,9 +872,9 @@
 
 [*Requirements]
 
-* `UT` must be a model of a CopyCOnstructible and Assignable.
+* `UT` must be a model of a `CopyConstructible` and `Assignable`.
 * `Tag` must be a unique class.
-* `MetaMixinSeq` must be a model of FinalUnderlying: defaulted to the empty sequence.
+* `MetaMixinSeq` must be a model of `MetaMixinSeq`: defaulted to the empty sequence.
 * `Base` is defaulted to the base class of all the new types `base_new_type`.
 
 
@@ -885,6 +886,7 @@
 [/==========================================================================================]
 
     namespace boost {
+ namespace opaque {
         class base_public_opaque_type;
 
         template <typename T>
@@ -898,6 +900,7 @@
>
         class public_opaque_class;
     }
+ }
 
 
 [/==========================================================================================]
@@ -978,6 +981,7 @@
 [/==========================================================================================]
 
     namespace boost {
+ namespace opaque {
         template <
             typename Final,
             typename UT,
@@ -986,12 +990,13 @@
>
         class public_opaque_type;
     }
+ }
 
 [/==========================================================================================]
 [section:public_opaque_type Class Template `public_opaque_type<>`]
 [/==========================================================================================]
 
-`private_opaque_typublic_opaque_typepe<>` provides the equivalent of `public_opaque_class<>` but can be used as a typedef.
+`public_opaque_type<>` provides the equivalent of `public_opaque_class<>` but can be used as a typedef.
 
     template <
         typename Final,
@@ -1015,9 +1020,9 @@
 
 [*Requirements]
 
-* `UT` must be a model of a CopyCOnstructible and Assignable.
+* `UT` must be a model of a `CopyConstructible` and `Assignable`.
 * `Tag` must be a unique class.
-* `MetaMixinSeq` must be a model of FinalUnderlying: defaulted to the empty sequence.
+* `MetaMixinSeq` must be a model of `MetaMixinSeq`: defaulted to the empty sequence.
 * `Base` is defaulted to the base class of all the new types `base_new_type`.
 
 [endsect]
@@ -1061,9 +1066,9 @@
 
 Classes that models the `FinalUnderlying` concept satisfy the following expressions:
 
-Let `B` a base class of `Final`, `b` an instance of `B`, `bc` an instance of `B const`, `f` an instace of `Final` and fc and instance of `Final const '.
+Let `B` a base class of `Final`, `b` an instance of `B`, `bc` an instance of `B const`, `f` an instace of `Final` and `fc` and instance of `Final const '.
 
-* `Final::underlying_type` the underlying type
+* `Final::underlying_type` the underlying type.
 * `Final::underlying(&b)` return a reference to `Final::underlying_type&` associated to `b`.
 * `Final::underlying(&bc)` return a constant reference to `Final::underlying_type const&` associated to `bc`.
 * `f.underlying()` return a reference to `Final::underlying_type&` associated to `f`.
@@ -1077,7 +1082,7 @@
 [section:Mixin `Mixin`]
 [/==========================================================================================]
 
-A Mixin is a template class having two template parameters, the Final type and the Base type. The Final parameter must satisfy the Final requirements.
+A Mixin is a template class having two template parameters, the Final type and the Base type.
 
 The archetype of a Mixin is
 
@@ -1132,7 +1137,7 @@
 [section:linear_hierarchy Class Template `linear_hierarchy<>`]
 [/==========================================================================================]
 
-The `linear_hierarchy` metafunction gererates a linear hierarchy by folding the Mixins obtained by application of the `MetaMixin` in `MetaMixinSeq`.
+The `linear_hierarchy` metafunction gererates a linear hierarchy by folding the Mixins obtained by application of the `MetaMixin`s in `MetaMixinSeq`.
 
         template<typename MetaMixinSeq, typename Final, typename Base>
         struct linear_hierarchy {
@@ -1162,13 +1167,14 @@
 
 `inherited_from_underlying` is a `MetaMixin` which adds wrapping member to the underlyibg type `UT`.
 
-This class must specialized for specific types in order to make easier the construction of opaque types having `UT` as underlying type. For example the library provide specializations for each one of the buil-in types.
+This class must be specialized for specific types in order to make easier the construction of opaque types having `UT` as underlying type. For example the library provide specializations for each one of the built-in types.
 
     template <typename Bool>
     struct inherited_from_underlying<int> {
         template <typename Final, typename Base>
         struct type; //implementation defined
     };
+
 [endsect]
 
 [endsect]
@@ -1177,7 +1183,7 @@
 [section:using_operators_hpp Header `<boost/opaque/meta_mixin/using_operators.hpp>`]
 [/==========================================================================================]
 
-This file includes meta-mixins that are used to add un operator overloads forwarding from the Final type to the underlying type. There is a meta-mixins for each one of the C++ overloadable operators.
+This file includes meta-mixins that are used to add an operator overload forwarding from the final type to the underlying type. There is a meta-mixin for each one of the C++ overloadable operators.
 
 These meta-mixins have names that follows the naming used in Boost.ConceptsTraits, but prefixed by `using_`.
 
@@ -1188,26 +1194,32 @@
 
 The requirements for the types used to instantiate the simple operator templates are specified in terms of expressions which must be valid and the expression's return type.
 
-
 These meta-mixins are "simple" since they provide un operator based on a single operation the underlying type has to provide. They have an additional optional template parameter Base, which is not shown, for the base class chaining technique.
 
 In the following table the meta-mixin follows the schema
 
- struct meta-mixins {
+ struct meta-mixin {
         template <typename NT, typename Base>
         struct type: Base {
             // Supplied Operation
         };
     };
 
-* NT/NT2 is expected to satisfy the FinalUnderlying requirements.
-* UT stands for NT::underlying_type
-* UT2 stands for NT2::underlying_type
-* this_ut is the instance UT reference obtained NT::underlying(this)
-* lhs is a NT/NT2 const reference
-* rhs is a NT/NT2 const reference
-* lhs_ut is the instance UT reference obtained lhs.underlying()
-* rhs_ut is the instance UT reference obtained rhs.underlying()
+* `NT`/`NT2` is expected to satisfy the `FinalUnderlying` requirements.
+
+* `UT` stands for `NT::underlying_type`.
+
+* `UT2` stands for `NT2::underlying_type`.
+
+* `this_ut` is the instance `UT` reference obtained `NT::underlying(this)`.
+
+* `lhs` is a `NT`/`NT2 const` reference.
+
+* `rhs` is a `NT`/`NT2 const` reference.
+
+* `lhs_ut` is the instance `UT` reference obtained `lhs.underlying()`.
+
+* `rhs_ut` is the instance `UT` reference obtained `rhs.underlying()`.
 
 
 [table Relational operators


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk