Update of /cvsroot/boost/boost/libs/bimap/doc/html/boost_bimap/bimap_and_boost
In directory 
sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv2441/doc/html/boost_bimap/bimap_and_boost

Modified Files:
        boost_libraries_that_work_well_with_boost_bimap.html 
        dependencies.html 
Log Message:
Xpressive & typeof sections

Index: boost_libraries_that_work_well_with_boost_bimap.html
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- boost_libraries_that_work_well_with_boost_bimap.html        31 May 2007 
07:07:20 -0000      1.2
+++ boost_libraries_that_work_well_with_boost_bimap.html        4 Jun 2007 
21:17:25 -0000       1.3
@@ -12,7 +12,9 @@
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF">
 <table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" 
src="../../../../boost.png"></td>
+<td valign="top">
+<img alt="Boost C++ Libraries" width="277" height="86" 
src="../../../../boost.png"><img alt="Chapter Logo" 
src="../../images/bimap/boost.bimap.header.png">
+</td>
 <td align="center"><a href="../../../../index.htm">Home</a></td>
 <td align="center"><a href="../../libraries.html">Libraries</a></td>
 <td align="center"><a href="../../../../people/people.htm">People</a></td>
@@ -37,6 +39,8 @@
 <dt><span class="section"><a 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_lambda">Boost.Lambda</a></span></dt>
 <dt><span class="section"><a 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_range">Boost.Range</a></span></dt>
 <dt><span class="section"><a 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_foreach">Boost.Foreach</a></span></dt>
+<dt><span class="section"><a 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_typeof">Boost.Typeof</a></span></dt>
+<dt><span class="section"><a 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_xpressive">Boost.Xpressive</a></span></dt>
 <dt><span class="section"><a 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_property_map">Boost.Property_map</a></span></dt>
 </dl></div>
 <div class="section" lang="en">
@@ -213,6 +217,51 @@
 <tr>
 <td>
                 <p>
+                  <a href="http://www.boost.org/libs/typeof/doc/index.html"; 
target="_top"><span class="bold"><strong>Boost.Typeof</strong></span></a>
+                </p>
+                </td>
+<td>
+                <p>
+                  Typeof operator emulation
+                </p>
+                </td>
+<td>
+                <p>
+                  Arkadiy Vertleyb, Peder Holt
+                </p>
+                </td>
+<td>
+                <p>
+                  Using BOOST_AUTO while we wait for C++0x
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  <a href="http://www.boost.org/libs/xpressive/doc/index.html"; 
target="_top"><span class="bold"><strong>Boost.Xpressive</strong></span></a>
+                </p>
+                </td>
+<td>
+                <p>
+                  Regular expressions that can be written as strings or as 
expression
+                  templates
+                </p>
+                </td>
+<td>
+                <p>
+                  Eric Niebler
+                </p>
+                </td>
+<td>
+                <p>
+                  Help to fill a bimap from a string
+                </p>
+                </td>
+</tr>
+<tr>
+<td>
+                <p>
                   <a href="http://www.boost.org/doc/html/property_map.html"; 
target="_top"><span class="bold"><strong>Boost.PropertyMap</strong></span></a>
                 </p>
                 </td>
@@ -771,6 +820,158 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h4 class="title">
+<a 
name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_typeof"></a><a
 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_typeof"
 title="Boost.Typeof">Boost.Typeof</a>
+</h4></div></div></div>
+<p>
+          Once C++0x is out we are going to be able to write code like:
+        </p>
+<pre class="programlisting">
+<span class="keyword">auto</span> <span class="identifier">iter</span> <span 
class="special">=</span> <span class="identifier">bm</span><span 
class="special">.</span><span class="identifier">by</span><span 
class="special">&lt;</span><span class="identifier">name</span><span 
class="special">&gt;().</span><span class="identifier">find</span><span 
class="special">(</span><span class="string">"john"</span><span 
class="special">);</span>
+</pre>
+<p>
+          instead of the more verbose
+        </p>
+<pre class="programlisting">
+<span class="identifier">bm_type</span><span class="special">::</span><span 
class="identifier">map_by</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;::</span><span 
class="identifier">iterator</span> <span class="identifier">iter</span> <span 
class="special">=</span> <span class="identifier">bm</span><span 
class="special">.</span><span class="identifier">by</span><span 
class="special">&lt;</span><span class="identifier">name</span><span 
class="special">&gt;().</span><span class="identifier">find</span><span 
class="special">(</span><span class="string">"john"</span><span 
class="special">);</span>
+</pre>
+<p>
+          Boost.Typeof defines a macro BOOST_AUTO that can be used as a 
library solution
+          to the auto keyword while we wait for the next standard.
+        </p>
+<p>
+          If we have
+        </p>
+<p>
+          </p>
+<p>
+            
+</p>
+<pre class="programlisting">
+<span class="keyword">typedef</span> <span 
class="identifier">bimap</span><span class="special">&lt;</span> <span 
class="identifier">tagged</span><span class="special">&lt;</span><span 
class="identifier">std</span><span class="special">::</span><span 
class="identifier">string</span><span class="special">,</span><span 
class="identifier">name</span><span class="special">&gt;,</span> <span 
class="identifier">tagged</span><span class="special">&lt;</span><span 
class="keyword">int</span><span class="special">,</span><span 
class="identifier">number</span><span class="special">&gt;</span> <span 
class="special">&gt;</span> <span class="identifier">bm_type</span><span 
class="special">;</span>
+<span class="identifier">bm_type</span> <span 
class="identifier">bm</span><span class="special">;</span>
+<span class="identifier">bm</span><span class="special">.</span><span 
class="identifier">insert</span><span class="special">(</span> <span 
class="identifier">bm_type</span><span class="special">::</span><span 
class="identifier">value_type</span><span class="special">(</span><span 
class="string">"one"</span>  <span class="special">,</span><span 
class="number">1</span><span class="special">)</span> <span 
class="special">);</span>
+<span class="identifier">bm</span><span class="special">.</span><span 
class="identifier">insert</span><span class="special">(</span> <span 
class="identifier">bm_type</span><span class="special">::</span><span 
class="identifier">value_type</span><span class="special">(</span><span 
class="string">"two"</span>  <span class="special">,</span><span 
class="number">2</span><span class="special">)</span> <span 
class="special">);</span>
+</pre>
+<p>
+          </p>
+<p>
+          </p>
+<p>
+            </p>
+<div class="calloutlist"><table border="0" summary="Callout 
list"></table></div>
+<p>
+          </p>
+<p>
+        </p>
+<p>
+          The following code snippet
+        </p>
+<p>
+          </p>
+<p>
+            
+</p>
+<pre class="programlisting">
+<span class="keyword">for</span><span class="special">(</span> <span 
class="identifier">bm_type</span><span class="special">::</span><span 
class="identifier">map_by</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;::</span><span 
class="identifier">iterator</span> <span class="identifier">iter</span> <span 
class="special">=</span> <span class="identifier">bm</span><span 
class="special">.</span><span class="identifier">by</span><span 
class="special">&lt;</span><span class="identifier">name</span><span 
class="special">&gt;().</span><span class="identifier">begin</span><span 
class="special">();</span>
+     <span class="identifier">iter</span><span class="special">!=</span><span 
class="identifier">bm</span><span class="special">.</span><span 
class="identifier">by</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;().</span><span 
class="identifier">end</span><span class="special">();</span> <span 
class="special">++</span><span class="identifier">iter</span><span 
class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span 
class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">iter</span><span class="special">-&gt;</span><span 
class="identifier">first</span> <span class="special">&lt;&lt;</span> <span 
class="string">" --&gt; "</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">iter</span><span class="special">-&gt;</span><span 
class="identifier">second</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">std</span><span class="special">::</span><span 
class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="identifier">bm_type</span><span class="special">::</span><span 
class="identifier">map_by</span><span class="special">&lt;</span><span 
class="identifier">number</span><span class="special">&gt;::</span><span 
class="identifier">iterator</span> <span class="identifier">iter</span> <span 
class="special">=</span> <span class="identifier">bm</span><span 
class="special">.</span><span class="identifier">by</span><span 
class="special">&lt;</span><span class="identifier">number</span><span 
class="special">&gt;().</span><span class="identifier">find</span><span 
class="special">(</span><span class="number">2</span><span 
class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span 
class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span 
class="string">"2: "</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">iter</span><span class="special">-&gt;</span><span 
class="identifier">get</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;();</span>
+</pre>
+<p>
+          </p>
+<p>
+          </p>
+<p>
+            </p>
+<div class="calloutlist"><table border="0" summary="Callout 
list"></table></div>
+<p>
+          </p>
+<p>
+        </p>
+<p>
+          can be rewrited as
+        </p>
+<p>
+          </p>
+<p>
+            
+</p>
+<pre class="programlisting">
+<span class="keyword">for</span><span class="special">(</span> <span 
class="identifier">BOOST_AUTO</span><span class="special">(</span><span 
class="identifier">iter</span><span class="special">,</span> <span 
class="identifier">bm</span><span class="special">.</span><span 
class="identifier">by</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;().</span><span 
class="identifier">begin</span><span class="special">());</span> <span 
class="identifier">iter</span><span class="special">!=</span><span 
class="identifier">bm</span><span class="special">.</span><span 
class="identifier">by</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;().</span><span 
class="identifier">end</span><span class="special">();</span> <span 
class="special">++</span><span class="identifier">iter</span><span 
class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span 
class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">iter</span><span class="special">-&gt;</span><span 
class="identifier">first</span> <span class="special">&lt;&lt;</span> <span 
class="string">" --&gt; "</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">iter</span><span class="special">-&gt;</span><span 
class="identifier">second</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">std</span><span class="special">::</span><span 
class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_AUTO</span><span class="special">(</span> <span 
class="identifier">iter</span><span class="special">,</span> <span 
class="identifier">bm</span><span class="special">.</span><span 
class="identifier">by</span><span class="special">&lt;</span><span 
class="identifier">number</span><span class="special">&gt;().</span><span 
class="identifier">find</span><span class="special">(</span><span 
class="number">2</span><span class="special">)</span> <span 
class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span 
class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span 
class="string">"2: "</span> <span class="special">&lt;&lt;</span> <span 
class="identifier">iter</span><span class="special">-&gt;</span><span 
class="identifier">get</span><span class="special">&lt;</span><span 
class="identifier">name</span><span class="special">&gt;();</span>
+</pre>
+<p>
+          </p>
+<p>
+          </p>
+<p>
+            </p>
+<div class="calloutlist"><table border="0" summary="Callout 
list"></table></div>
+<p>
+          </p>
+<p>
+        </p>
+<p>
+          <a href="../../../../example/bimap_and_boost/typeof.cpp" 
target="_top">Go to source code</a>
+        </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a 
name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_xpressive"></a><a
 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_xpressive"
 title="Boost.Xpressive">Boost.Xpressive</a>
+</h4></div></div></div>
+<p>
+          Using Boost.Xpressive we can parse a file and insert the relations 
in a
+          bimap in the same step. It is just amazing the power of four lines 
of code.
+          Here is an example (it is just beatifull)
+        </p>
+<p>
+          </p>
+<p>
+            
+</p>
+<pre class="programlisting">
+<span class="keyword">typedef</span> <span 
class="identifier">bimap</span><span class="special">&lt;</span> <span 
class="identifier">std</span><span class="special">::</span><span 
class="identifier">string</span><span class="special">,</span> <span 
class="keyword">int</span> <span class="special">&gt;</span> <span 
class="identifier">bm_type</span><span class="special">;</span>
+<span class="identifier">bm_type</span> <span 
class="identifier">bm</span><span class="special">;</span>
+
+<span class="identifier">std</span><span class="special">::</span><span 
class="identifier">string</span> <span class="identifier">rel_str</span><span 
class="special">(</span><span class="string">"one &lt;--&gt; 1     two 
&lt;--&gt; 2      three &lt;--&gt; 3"</span><span class="special">);</span>
+
+<span class="identifier">sregex</span> <span class="identifier">rel</span> 
<span class="special">=</span> <span class="special">(</span> <span 
class="special">(</span><span class="identifier">s1</span><span 
class="special">=</span> <span class="special">+</span><span 
class="identifier">_w</span><span class="special">)</span> <span 
class="special">&gt;&gt;</span> <span class="string">" &lt;--&gt; "</span> 
<span class="special">&gt;&gt;</span> <span class="special">(</span><span 
class="identifier">s2</span><span class="special">=</span> <span 
class="special">+</span><span class="identifier">_d</span><span 
class="special">)</span> <span class="special">)</span>
+<span class="special">[</span>
+    <span class="identifier">xp</span><span class="special">::</span><span 
class="identifier">ref</span><span class="special">(</span><span 
class="identifier">bm</span><span class="special">)-&gt;*</span><span 
class="identifier">insert</span><span class="special">(</span> <span 
class="identifier">construct</span><span class="special">&lt;</span><span 
class="identifier">bm_type</span><span class="special">::</span><span 
class="identifier">value_type</span><span class="special">&gt;(</span><span 
class="identifier">s1</span><span class="special">,</span> <span 
class="identifier">as</span><span class="special">&lt;</span><span 
class="keyword">int</span><span class="special">&gt;(</span><span 
class="identifier">s2</span><span class="special">))</span> <span 
class="special">)</span>
+<span class="special">];</span>
+
+<span class="identifier">sregex</span> <span 
class="identifier">relations</span> <span class="special">=</span> <span 
class="identifier">rel</span> <span class="special">&gt;&gt;</span> <span 
class="special">*(+</span><span class="identifier">_s</span> <span 
class="special">&gt;&gt;</span> <span class="identifier">rel</span><span 
class="special">);</span>
+
+<span class="identifier">regex_match</span><span class="special">(</span><span 
class="identifier">rel_str</span><span class="special">,</span> <span 
class="identifier">relations</span><span class="special">);</span>
+
+<span class="identifier">assert</span><span class="special">(</span> <span 
class="identifier">bm</span><span class="special">.</span><span 
class="identifier">size</span><span class="special">()</span> <span 
class="special">==</span> <span class="number">3</span> <span 
class="special">);</span>
+</pre>
+<p>
+          </p>
+<p>
+          </p>
+<p>
+            </p>
+<div class="calloutlist"><table border="0" summary="Callout 
list"></table></div>
+<p>
+          </p>
+<p>
+        </p>
+<p>
+          <a href="../../../../example/bimap_and_boost/xpressive.cpp" 
target="_top">Go to source code</a>
+        </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
 <a 
name="boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_property_map"></a><a
 
href="boost_libraries_that_work_well_with_boost_bimap.html#boost_bimap.bimap_and_boost.boost_libraries_that_work_well_with_boost_bimap.boost_property_map"
 title="Boost.Property_map">Boost.Property_map</a>
 </h4></div></div></div>
 <p>

Index: dependencies.html
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/bimap/doc/html/boost_bimap/bimap_and_boost/dependencies.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- dependencies.html   31 May 2007 07:07:20 -0000      1.2
+++ dependencies.html   4 Jun 2007 21:17:25 -0000       1.3
@@ -12,7 +12,9 @@
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF">
 <table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" 
src="../../../../boost.png"></td>
+<td valign="top">
+<img alt="Boost C++ Libraries" width="277" height="86" 
src="../../../../boost.png"><img alt="Chapter Logo" 
src="../../images/bimap/boost.bimap.header.png">
+</td>
 <td align="center"><a href="../../../../index.htm">Home</a></td>
 <td align="center"><a href="../../libraries.html">Libraries</a></td>
 <td align="center"><a href="../../../../people/people.htm">People</a></td>
@@ -36,7 +38,7 @@
         is the heart of this library.
       </p>
 <div class="table">
-<a name="id2649852"></a><p class="title"><b>Table 1.4. Boost Libraries needed 
by Boost.Bimap</b></p>
+<a name="id2655376"></a><p class="title"><b>Table 1.4. Boost Libraries needed 
by Boost.Bimap</b></p>
 <div class="table-contents"><table class="table" summary="Boost Libraries 
needed by Boost.Bimap">
 <colgroup>
 <col>
@@ -185,7 +187,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2650126"></a><p class="title"><b>Table 1.5. Optional Boost 
Libraries</b></p>
+<a name="id2655650"></a><p class="title"><b>Table 1.5. Optional Boost 
Libraries</b></p>
 <div class="table-contents"><table class="table" summary="Optional Boost 
Libraries">
 <colgroup>
 <col>
@@ -355,7 +357,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2650413"></a><p class="title"><b>Table 1.6. Additional Boost 
Libraries needed to run
+<a name="id2655937"></a><p class="title"><b>Table 1.6. Additional Boost 
Libraries needed to run
       the test-suite</b></p>
 <div class="table-contents"><table class="table" summary="Additional Boost 
Libraries needed to run
       the test-suite">


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to