Boost logo

Boost-Commit :

From: garcia_at_[hidden]
Date: 2007-08-20 15:16:39


Author: garcia
Date: 2007-08-20 15:16:39 EDT (Mon, 20 Aug 2007)
New Revision: 38804
URL: http://svn.boost.org/trac/boost/changeset/38804

Log:
Added "dimensionality" compile-time constant to the MultiArray concept.

Text files modified:
   trunk/libs/multi_array/doc/reference.html | 36 +++++++++++++++++++-----------------
   trunk/libs/multi_array/doc/xml/MultiArray.xml | 7 +++++++
   trunk/libs/multi_array/test/concept_checks.cpp | 4 ++--
   3 files changed, 28 insertions(+), 19 deletions(-)

Modified: trunk/libs/multi_array/doc/reference.html
==============================================================================
--- trunk/libs/multi_array/doc/reference.html (original)
+++ trunk/libs/multi_array/doc/reference.html 2007-08-20 15:16:39 EDT (Mon, 20 Aug 2007)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Boost.MultiArray Reference Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.69.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id720674"></a>Boost.MultiArray Reference Manual</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Ronald</span> <span class="surname">Garcia</span></h3><div class="affiliation"><span class="orgname">Indiana University<br></span><span class="orgdiv">Open Systems Lab<br></span></div></div></div><div><p class="copyright">Copyright © 2002 The Trustees of Indiana University</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1">Library Synopsis</span></dt><dt><span class="sect1">MultiArray Concept</span></dt><dd><dl><dt>
<span class="sect2">Notation</span></dt><dt><span class="sect2">Associated Types</span></dt><dt><span class="sect2">Valid expressions</span></dt><dt><span class="sect2">Complexity guarantees</span></dt><dt><span class="sect2">Invariants</span></dt><dt><span class="sect2">Associated Types for Views</span></dt><dt><span class="sect2">Models</span></dt></dl></dd><dt><span class="sect1">Array Components</span></dt><dd><dl><dt><span class="sect2">multi_array</span></dt><dt><span class="sect2">multi_array_ref</span></dt><dt><span class="sect2">const_multi_array_ref</span></dt></dl></dd><dt><span class="sect1"><a href="#auxiliary">Auxiliary Co
mponents</a></span></dt><dd><dl><dt><span class="sect2">multi_array_types</span></dt><dt><span class="sect2">extent_range</span></dt><dt><span class="sect2">extent_gen</span></dt><dt><span class="sect2">Global Objects</span></dt><dt><span class="sect2">View and SubArray Generators</span></dt><dt><span class="sect2">Memory Layout Specifiers</span></dt><dt><span class="sect2">Range Checking</span></dt></dl></dd></dl></div><p>Boost.MultiArray is composed of several components.
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Boost.MultiArray Reference Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.71.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id823342"></a>Boost.MultiArray Reference Manual</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Ronald</span> <span class="surname">Garcia</span></h3><div class="affiliation"><span class="orgname">Indiana University<br></span> <span class="orgdiv">Open Systems Lab<br></span></div></div></div><div><p class="copyright">Copyright © 2002 The Trustees of Indiana University</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1">Library Synopsis</span></dt><dt><span class="sect1">MultiArray Concept</span></dt><dd><dl><dt
><span class="sect2">Notation</span></dt><dt><span class="sect2">Associated Types</span></dt><dt><span class="sect2">Valid expressions</span></dt><dt><span class="sect2">Complexity guarantees</span></dt><dt><span class="sect2">Invariants</span></dt><dt><span class="sect2">Associated Types for Views</span></dt><dt><span class="sect2">Models</span></dt></dl></dd><dt><span class="sect1">Array Components</span></dt><dd><dl><dt><span class="sect2">multi_array</span></dt><dt><span class="sect2">multi_array_ref</span></dt><dt><span class="sect2">const_multi_array_ref</span></dt></dl></dd><dt><span class="sect1"><a href="#auxiliary">Auxiliary C
omponents</a></span></dt><dd><dl><dt><span class="sect2">multi_array_types</span></dt><dt><span class="sect2">extent_range</span></dt><dt><span class="sect2">extent_gen</span></dt><dt><span class="sect2">Global Objects</span></dt><dt><span class="sect2">View and SubArray Generators</span></dt><dt><span class="sect2">Memory Layout Specifiers</span></dt><dt><span class="sect2">Range Checking</span></dt></dl></dd></dl></div><p>Boost.MultiArray is composed of several components.
 The MultiArray concept defines a generic interface to multidimensional
 containers.
 <code class="literal">multi_array</code> is a general purpose container class
@@ -150,8 +150,8 @@
 dimensional array can be stored by row (i.e., the elements of each row
 are stored contiguously) or by column (i.e., the elements of each
 column are stored contiguously).
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id825416"></a>Notation</h3></div></div></div><p>What follows are the descriptions of symbols that will be used
-to describe the MultiArray interface.</p><div class="table"><a name="id825425"></a><p class="title"><b>Table 1. Notation</b></p><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">A</code></td><td>A type that is a model of MultiArray
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id896773"></a>Notation</h3></div></div></div><p>What follows are the descriptions of symbols that will be used
+to describe the MultiArray interface.</p><div class="table"><a name="id896782"></a><p class="title"><b>Table 1. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">A</code></td><td>A type that is a model of MultiArray
 </td></tr><tr><td><code class="literal">a,b</code></td><td>Objects of type <code class="literal">A</code></td></tr><tr><td><code class="literal">NumDims</code></td><td>The numeric dimension parameter associated with
 <code class="literal">A</code>.</td></tr><tr><td><code class="literal">Dims</code></td><td>Some numeric dimension parameter such that
 <code class="literal">0&lt;Dims&lt;NumDims</code>.
@@ -159,8 +159,8 @@
 to <code class="literal">index_gen::operator[](index_range)</code>.</td></tr><tr><td><code class="literal">index_list</code></td><td>An object whose type models
 <a href="../../utility/Collection.html" target="_top">Collection</a>
 </td></tr><tr><td><code class="literal">idx</code></td><td>A signed integral value.</td></tr><tr><td><code class="literal">tmp</code></td><td>An object of type
- <code class="literal">boost::array&lt;index,NumDims&gt;</code></td></tr></tbody></table></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id825584"></a>Associated Types</h3></div></div></div><p>
-</p><div class="table"><a name="id825592"></a><p class="title"><b>Table 2. Associated Types</b></p><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">value_type</code></td><td>This is the value type of the container.
+ <code class="literal">boost::array&lt;index,NumDims&gt;</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id896941"></a>Associated Types</h3></div></div></div><p>
+</p><div class="table"><a name="id896949"></a><p class="title"><b>Table 2. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">value_type</code></td><td>This is the value type of the container.
   If <code class="literal">NumDims == 1</code>, then this is
 <code class="literal">element</code>. Otherwise, this is the value type of the
 immediately nested containers.
@@ -260,7 +260,9 @@
 const_array_view&lt;Dims&gt;::type</code>
 </td><td>
 This is the const view type with <code class="literal">Dims</code> dimensions.
-</td></tr></tbody></table></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id826094"></a>Valid expressions</h3></div></div></div><div class="table"><a name="id826098"></a><p class="title"><b>Table 3. Valid Expressions</b></p><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">a.shape()</code></td><td><code class="literal">const size_type*</code></td><td>
+</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id897451"></a>Valid expressions</h3></div></div></div><div class="table"><a name="id897455"></a><p class="title"><b>Table 3. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">A::dimensionality</code></td><td><code class="literal">size_type</code></td><td>This compile-time constant represents the number of
+dimensions of the array (note that
+<code class="literal">A::dimensionality == NumDims</code>).</td></tr><tr><td><code class="literal">a.shape()</code></td><td><code class="literal">const size_type*</code></td><td>
 This returns a list of <code class="literal">NumDims</code> elements specifying the
 extent of each array dimension.
 </td></tr><tr><td><code class="literal">a.strides()</code></td><td><code class="literal">const index*</code></td><td>
@@ -358,11 +360,11 @@
 expression to be valid.</td></tr><tr><td><code class="literal">a &gt;= b</code></td><td>bool</td><td>This performs a lexicographical comparison of the
 values of <code class="literal">a</code> and <code class="literal">b</code>. The element
 type must model LessThanComparable for this
-expression to be valid.</td></tr></tbody></table></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id826884"></a>Complexity guarantees</h3></div></div></div><code class="literal">begin()</code> and <code class="literal">end()</code> execute in amortized
+expression to be valid.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id898268"></a>Complexity guarantees</h3></div></div></div><code class="literal">begin()</code> and <code class="literal">end()</code> execute in amortized
 constant time.
 <code class="literal">size()</code> executes in at most linear time in the
 MultiArray's size.
-</div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id826909"></a>Invariants</h3></div></div></div><div class="table"><a name="id826914"></a><p class="title"><b>Table 4. Invariants</b></p><table summary="Invariants" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Valid range</td><td><code class="literal">[a.begin(),a.end())</code> is a valid range.
+</div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id898293"></a>Invariants</h3></div></div></div><div class="table"><a name="id898298"></a><p class="title"><b>Table 4. Invariants</b></p><div class="table-contents"><table summary="Invariants" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Valid range</td><td><code class="literal">[a.begin(),a.end())</code> is a valid range.
             </td></tr><tr><td>Range size</td><td>
 <code class="literal">a.size() == std::distance(a.begin(),a.end());</code>.
 </td></tr><tr><td>Completeness</td><td>
@@ -374,7 +376,7 @@
 yields the same result as calling
 <code class="literal">a(index_list)</code>, where <code class="literal">index_list</code>
 is a Collection containing the values <code class="literal">a1...aN</code>.
-</td></tr></tbody></table></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="view_types"></a>Associated Types for Views</h3></div></div></div><p>The following MultiArray associated
+</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="view_types"></a>Associated Types for Views</h3></div></div></div><p>The following MultiArray associated
 types define the interface for creating views of existing
 MultiArrays. Their interfaces and roles in the
 concept are described below.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="index_range"></a><code class="literal">index_range</code></h4></div></div></div><p><code class="literal">index_range</code> objects represent half-open
@@ -401,10 +403,10 @@
 
 The following describes the
 <code class="literal">index_range</code> interface.
-</p><div class="table"><a name="id827142"></a><p class="title"><b>Table 5. Notation</b></p><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">i</code></td><td>An object of type <code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx,idx1,idx2,idx3</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div><div class="table"><a name="id827195"></a><p class="title"><b>Table 6. Associated Types</b></p><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
+</p><div class="table"><a name="id898526"></a><p class="title"><b>Table 5. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">i</code></td><td>An object of type <code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx,idx1,idx2,idx3</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id898580"></a><p class="title"><b>Table 6. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
 specify the start, finish, and stride values.</td></tr><tr><td><code class="literal">size_type</code></td><td>This is an unsigned integral type. It is used to
 report the size of the range an <code class="literal">index_range</code>
-represents.</td></tr></tbody></table></div><div class="table"><a name="id827258"></a><p class="title"><b>Table 7. Valid Expressions</b></p><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_range(idx1,idx2,idx3)</code></td><td><code class="literal">index_range</code></td><td>This constructs an <code class="literal">index_range</code>
+represents.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id898642"></a><p class="title"><b>Table 7. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_range(idx1,idx2,idx3)</code></td><td><code class="literal">index_range</code></td><td>This constructs an <code class="literal">index_range</code>
             representing the interval <code class="literal">[idx1,idx2)</code>
  with stride <code class="literal">idx3</code>.</td></tr><tr><td><code class="literal">index_range(idx1,idx2)</code></td><td><code class="literal">index_range</code></td><td>This constructs an <code class="literal">index_range</code>
             representing the interval <code class="literal">[idx1,idx2)</code>
@@ -436,14 +438,14 @@
 of <code class="literal">i</code> up by <code class="literal">idx</code>. It is equivalent to
 <code class="literal">index_range(r.start()+idx1, r.finish()+idx, r.stride())</code></td></tr><tr><td><code class="literal">i - idx</code></td><td><code class="literal">index</code></td><td>This expression shifts the start and finish values
 of <code class="literal">i</code> up by <code class="literal">idx</code>. It is equivalent to
-<code class="literal">index_range(r.start()-idx1, r.finish()-idx, r.stride())</code></td></tr></tbody></table></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="index_gen"></a><code class="literal">index_gen</code></h4></div></div></div><p> <code class="literal">index_gen</code> aggregates
+<code class="literal">index_range(r.start()-idx1, r.finish()-idx, r.stride())</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="index_gen"></a><code class="literal">index_gen</code></h4></div></div></div><p> <code class="literal">index_gen</code> aggregates
 <code class="literal">index_range</code> objects in order to specify view
 parameters. Chained calls to <code class="literal">operator[]</code> store
 range and dimension information used to
 instantiate a new view into a MultiArray.
-</p><div class="table"><a name="id827924"></a><p class="title"><b>Table 8. Notation</b></p><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">Dims,Ranges</code></td><td>Unsigned integral values.</td></tr><tr><td><code class="literal">x</code></td><td>An object of type
+</p><div class="table"><a name="id899309"></a><p class="title"><b>Table 8. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">Dims,Ranges</code></td><td>Unsigned integral values.</td></tr><tr><td><code class="literal">x</code></td><td>An object of type
 <code class="literal">template gen_type&lt;Dims,Ranges&gt;::type</code>.</td></tr><tr><td><code class="literal">i</code></td><td>An object of type
-<code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div><div class="table"><a name="id828010"></a><p class="title"><b>Table 9. Associated Types</b></p><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
+<code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id899395"></a><p class="title"><b>Table 9. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
 specify degenerate dimensions.</td></tr><tr><td><code class="literal">size_type</code></td><td>This is an unsigned integral type. It is used to
 report the size of the range an <code class="literal">index_range</code>
 represents.</td></tr><tr><td>
@@ -454,7 +456,7 @@
 degenerate ranges specified (i.e. calls to
 <code class="literal">operator[](index)</code>). Note that
 <code class="classname">index_gen</code> and
-<code class="classname">gen_type&lt;0,0&gt;::type</code> are the same type.</td></tr></tbody></table></div><div class="table"><a name="id828122"></a><p class="title"><b>Table 10. Valid Expressions</b></p><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_gen()</code></td><td><code class="literal">gen_type&lt;0,0&gt;::type</code></td><td>This constructs an <code class="literal">index_gen</code>
+<code class="classname">gen_type&lt;0,0&gt;::type</code> are the same type.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id899506"></a><p class="title"><b>Table 10. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_gen()</code></td><td><code class="literal">gen_type&lt;0,0&gt;::type</code></td><td>This constructs an <code class="literal">index_gen</code>
 object. This object can then be used to generate tuples of
 <code class="literal">index_range</code> values.</td></tr><tr><td><code class="literal">x[i]</code></td><td><code class="literal">gen_type&lt;Dims+1,Ranges+1&gt;::type</code>
 </td><td>Returns a new object containing all previous
@@ -468,7 +470,7 @@
 equivalent to <code class="literal">x[index_range(idx,idx)].</code>, which will
 return an object of type
 <code class="literal">gen_type&lt;Dims+1,Ranges+1&gt;::type</code>.
-</td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id828278"></a>Models</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><code class="literal">multi_array</code></li><li><code class="literal">multi_array_ref</code></li><li><code class="literal">const_multi_array_ref</code></li><li><code class="literal">template array_view&lt;Dims&gt;::type</code></li><li><code class="literal">template const_array_view&lt;Dims&gt;::type</code></li><li><code class="literal">template subarray&lt;Dims&gt;::type</code></li><li><code class="literal">template const_subarray&lt;Dims&gt;::type</code></li></ul></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="array_types"></a>Array Components</h2></div></div></div><p>
+</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id899663"></a>Models</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><code class="literal">multi_array</code></li><li><code class="literal">multi_array_ref</code></li><li><code class="literal">const_multi_array_ref</code></li><li><code class="literal">template array_view&lt;Dims&gt;::type</code></li><li><code class="literal">template const_array_view&lt;Dims&gt;::type</code></li><li><code class="literal">template subarray&lt;Dims&gt;::type</code></li><li><code class="literal">template const_subarray&lt;Dims&gt;::type</code></li></ul></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="array_types"></a>Array Components</h2></div></div></div><p>
 Boost.MultiArray defines an array class,
 <code class="literal">multi_array</code>, and two adapter classes,
 <code class="literal">multi_array_ref</code> and
@@ -1170,7 +1172,7 @@
 <code class="classname">extent_range</code> objects in addition to
 <code class="literal">extent_range(0,idx).</code> This function gives the array
 constructors a similar syntax to traditional C multidimensional array
-declaration.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id835381"></a>Global Objects</h3></div></div></div><p>For syntactic convenience, Boost.MultiArray defines two
+declaration.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id906792"></a>Global Objects</h3></div></div></div><p>For syntactic convenience, Boost.MultiArray defines two
 global objects as part of its
 interface. These objects play the role of object generators;
 expressions involving them create other objects of interest.

Modified: trunk/libs/multi_array/doc/xml/MultiArray.xml
==============================================================================
--- trunk/libs/multi_array/doc/xml/MultiArray.xml (original)
+++ trunk/libs/multi_array/doc/xml/MultiArray.xml 2007-08-20 15:16:39 EDT (Mon, 20 Aug 2007)
@@ -386,6 +386,13 @@
         </thead>
         <tbody>
           <row>
+ <entry><literal>A::dimensionality</literal></entry>
+ <entry><literal>size_type</literal></entry>
+ <entry>This compile-time constant represents the number of
+dimensions of the array (note that
+<literal>A::dimensionality == NumDims</literal>).</entry>
+ </row>
+ <row>
             <entry><literal>a.shape()</literal></entry>
             <entry><literal>const size_type*</literal></entry>
             <entry>

Modified: trunk/libs/multi_array/test/concept_checks.cpp
==============================================================================
--- trunk/libs/multi_array/test/concept_checks.cpp (original)
+++ trunk/libs/multi_array/test/concept_checks.cpp 2007-08-20 15:16:39 EDT (Mon, 20 Aug 2007)
@@ -20,8 +20,8 @@
 #include "boost/multi_array.hpp"
 
 #include "boost/cstdlib.hpp"
-#define BOOST_INCLUDE_MAIN
-#include "boost/test/test_tools.hpp"
+
+#include "boost/test/minimal.hpp"
 
 #include "boost/array.hpp"
 


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