Boost C++ Libraries: Ticket #1295: for each in VC8+ https://svn.boost.org/trac10/ticket/1295 <p> VC8 and VC9 have built in for each operator. BOOST_FOREACH should use it instead. This can decrease compilation time. </p> <p> Code sample: </p> <div class="wiki-code"><div class="code"><pre><span class="cp">#if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400</span> <span class="cp">#define BOOST_FOREACH(i, c) for each(i in c)</span> <span class="cp">#else</span> <span class="c1">// BOOST_FOREACH</span> <span class="cp">#endif </span><span class="c1">// _MSC_VER &amp;&amp; _MSC_VER &gt;= 1400</span> </pre></div></div> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1295 Trac 1.4.3 Eric Niebler Wed, 03 Oct 2007 11:10:27 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/1295#comment:1 https://svn.boost.org/trac10/ticket/1295#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> Can't be done. MSVC 'for each' can't operate on native array types, iterator ranges or C strings nor is extensible via Boost.Range customization points. 'for each' also cannot iterate over an STL container using a non-const reference iteration variable. </p> <p> Nobody has complained about compile times with BOOST_FOREACH. </p> Ticket NN Fri, 19 Oct 2007 16:54:25 GMT <link>https://svn.boost.org/trac10/ticket/1295#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1295#comment:2</guid> <description> <p> VC can iterate over native array and iterator ranges. In VC9 you can iterate over string literals too. </p> <p> There is no option to change variables, but this can be easily fixed with const_cast. </p> <p> This what you can do with VC9 for each: </p> <div class="wiki-code"><div class="code"><pre><span class="cp">#include</span> <span class="cpf">&lt;boost/array.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;boost/range/iterator_range.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;vector&gt;</span><span class="cp"></span> <span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">T</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="o">&gt;</span> <span class="n">boost</span><span class="o">::</span><span class="n">array</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span><span class="o">&gt;</span> <span class="n">make_array_range</span><span class="p">()</span> <span class="p">{</span> <span class="n">boost</span><span class="o">::</span><span class="n">array</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N</span><span class="o">&gt;</span> <span class="n">a</span><span class="p">;</span> <span class="n">T</span> <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="k">for</span> <span class="nf">each</span><span class="p">(</span><span class="n">T</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">i</span> <span class="n">in</span> <span class="n">a</span><span class="p">)</span> <span class="k">const_cast</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&amp;&gt;</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">=</span> <span class="n">c</span><span class="o">++</span><span class="p">;</span> <span class="k">return</span> <span class="n">a</span><span class="p">;</span> <span class="p">}</span> <span class="kt">int</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span> <span class="k">for</span> <span class="n">each</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="n">in</span> <span class="n">make_array_range</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">&gt;</span><span class="p">())</span> <span class="n">printf</span><span class="p">(</span><span class="s">&quot;%d&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">);</span> <span class="k">typedef</span> <span class="n">boost</span><span class="o">::</span><span class="n">array</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">&gt;</span> <span class="n">ints</span><span class="p">;</span> <span class="n">ints</span> <span class="n">a</span> <span class="o">=</span> <span class="n">make_array_range</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">&gt;</span><span class="p">();</span> <span class="n">boost</span><span class="o">::</span><span class="n">iterator_range</span><span class="o">&lt;</span><span class="n">ints</span><span class="o">::</span><span class="n">iterator</span><span class="o">&gt;</span> <span class="n">x</span><span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">a</span><span class="p">.</span><span class="n">end</span><span class="p">());</span> <span class="k">for</span> <span class="nf">each</span><span class="p">(</span><span class="n">ints</span><span class="o">::</span><span class="n">const_reference</span> <span class="n">i</span> <span class="n">in</span> <span class="n">x</span><span class="p">)</span> <span class="n">printf</span><span class="p">(</span><span class="s">&quot;%d&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">);</span> <span class="k">for</span> <span class="nf">each</span><span class="p">(</span><span class="kt">char</span><span class="o">%</span> <span class="n">c</span> <span class="n">in</span> <span class="s">&quot;asdf&quot;</span><span class="p">)</span> <span class="n">printf</span><span class="p">(</span><span class="s">&quot;%c&quot;</span><span class="p">,</span> <span class="n">c</span><span class="p">);</span> <span class="k">typedef</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">vints</span><span class="p">;</span> <span class="n">vints</span> <span class="nf">v</span><span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">a</span><span class="p">.</span><span class="n">end</span><span class="p">());</span> <span class="k">for</span> <span class="nf">each</span><span class="p">(</span><span class="n">vints</span><span class="o">::</span><span class="n">const_reference</span> <span class="n">i</span> <span class="n">in</span> <span class="n">v</span><span class="p">)</span> <span class="k">const_cast</span><span class="o">&lt;</span><span class="n">vints</span><span class="o">::</span><span class="n">reference</span><span class="o">&gt;</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="p">}</span> </pre></div></div><p> Of course this is not full replacement of Boost.Foreach. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>NN</dc:creator> <pubDate>Fri, 19 Oct 2007 21:07:02 GMT</pubDate> <title>status changed; resolution deleted https://svn.boost.org/trac10/ticket/1295#comment:3 https://svn.boost.org/trac10/ticket/1295#comment:3 <ul> <li><strong>status</strong> <span class="trac-field-old">closed</span> → <span class="trac-field-new">reopened</span> </li> <li><strong>resolution</strong> <span class="trac-field-deleted">wontfix</span> </li> </ul> <p> I have found the way to make it work with all requirements: </p> <div class="wiki-code"><div class="code"><pre><span class="cp">#include</span> <span class="cpf">&lt;boost/range/iterator_range.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;boost/foreach.hpp&gt;</span><span class="cp"></span> <span class="cp">#if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400 </span><span class="c1">// VC 8.0+ </span> <span class="cp">#define foreach(var, col) \</span> <span class="cp"> for each(var in (::boost::make_iterator_range(col)))</span> <span class="cp">#else </span><span class="c1">// Other compilers</span> <span class="cp">#define foreach BOOST_FOREACH</span> <span class="cp">#endif </span><span class="c1">// defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400 // VC 8.0+</span> </pre></div></div><p> There is a code for test: </p> <div class="wiki-code"><div class="code"><pre> <span class="cp">#include</span> <span class="cpf">&lt;boost/range/begin.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;boost/range/end.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;boost/array.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;boost/lambda/lambda.hpp&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;vector&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;cassert&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;iostream&gt;</span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf">&lt;iterator&gt;</span><span class="cp"></span> <span class="k">namespace</span> <span class="n">my</span> <span class="p">{</span> <span class="c1">// Extensibility check</span> <span class="k">struct</span> <span class="n">non_iteratable</span> <span class="p">{</span> <span class="n">non_iteratable</span><span class="p">()</span> <span class="p">{</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span> <span class="k">typedef</span> <span class="n">boost</span><span class="o">::</span><span class="n">array</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">2</span><span class="o">&gt;</span> <span class="n">x_type</span><span class="p">;</span> <span class="n">x_type</span> <span class="n">x</span><span class="p">;</span> <span class="p">};</span> <span class="n">non_iteratable</span><span class="o">::</span><span class="n">x_type</span><span class="o">::</span><span class="n">iterator</span> <span class="n">boost_range_begin</span><span class="p">(</span><span class="n">non_iteratable</span><span class="o">&amp;</span> <span class="n">c</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">boost</span><span class="o">::</span><span class="n">begin</span><span class="p">(</span><span class="n">c</span><span class="p">.</span><span class="n">x</span><span class="p">);</span> <span class="p">}</span> <span class="n">non_iteratable</span><span class="o">::</span><span class="n">x_type</span><span class="o">::</span><span class="n">iterator</span> <span class="n">boost_range_end</span><span class="p">(</span><span class="n">non_iteratable</span><span class="o">&amp;</span> <span class="n">c</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">c</span><span class="p">.</span><span class="n">x</span><span class="p">);</span> <span class="p">}</span> <span class="n">non_iteratable</span><span class="o">::</span><span class="n">x_type</span><span class="o">::</span><span class="n">const_iterator</span> <span class="n">boost_range_begin</span><span class="p">(</span><span class="n">non_iteratable</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">c</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">boost</span><span class="o">::</span><span class="n">begin</span><span class="p">(</span><span class="n">c</span><span class="p">.</span><span class="n">x</span><span class="p">);</span> <span class="p">}</span> <span class="n">non_iteratable</span><span class="o">::</span><span class="n">x_type</span><span class="o">::</span><span class="n">const_iterator</span> <span class="n">boost_range_end</span><span class="p">(</span><span class="n">non_iteratable</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">c</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">c</span><span class="p">.</span><span class="n">x</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="c1">// namespace my</span> <span class="k">namespace</span> <span class="n">boost</span> <span class="p">{</span> <span class="c1">// specialize rannge_iterator and range_const_iterator in namespace boost</span> <span class="k">template</span><span class="o">&lt;&gt;</span> <span class="k">struct</span> <span class="n">range_iterator</span><span class="o">&lt;</span><span class="n">my</span><span class="o">::</span><span class="n">non_iteratable</span><span class="o">&gt;</span> <span class="p">{</span> <span class="k">typedef</span> <span class="n">my</span><span class="o">::</span><span class="n">non_iteratable</span><span class="o">::</span><span class="n">x_type</span><span class="o">::</span><span class="n">iterator</span> <span class="n">type</span><span class="p">;</span> <span class="p">};</span> <span class="k">template</span><span class="o">&lt;&gt;</span> <span class="k">struct</span> <span class="n">range_const_iterator</span><span class="o">&lt;</span><span class="n">my</span><span class="o">::</span><span class="n">non_iteratable</span><span class="o">&gt;</span> <span class="p">{</span> <span class="k">typedef</span> <span class="n">my</span><span class="o">::</span><span class="n">non_iteratable</span><span class="o">::</span><span class="n">x_type</span><span class="o">::</span><span class="n">const_iterator</span> <span class="n">type</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span> <span class="c1">// namespace boost</span> <span class="kt">int</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span> <span class="p">{</span> <span class="c1">// Regular array</span> <span class="kt">int</span> <span class="n">a</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="o">=</span> <span class="p">{};</span> <span class="c1">// Value</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to non Const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">find</span><span class="p">(</span><span class="n">boost</span><span class="o">::</span><span class="n">begin</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">));</span> <span class="p">}</span> <span class="p">{</span> <span class="c1">// Boost.Array</span> <span class="n">boost</span><span class="o">::</span><span class="n">array</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">&gt;</span> <span class="n">a</span> <span class="o">=</span> <span class="p">{};</span> <span class="c1">// Value</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to non Const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">find</span><span class="p">(</span><span class="n">boost</span><span class="o">::</span><span class="n">begin</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">));</span> <span class="p">}</span> <span class="p">{</span> <span class="c1">// Std.Vector</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">a</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span> <span class="c1">// Value</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to non Const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">find</span><span class="p">(</span><span class="n">boost</span><span class="o">::</span><span class="n">begin</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">));</span> <span class="p">}</span> <span class="c1">// Extensibility</span> <span class="p">{</span> <span class="n">my</span><span class="o">::</span><span class="n">non_iteratable</span> <span class="n">a</span><span class="p">;</span> <span class="c1">// Value</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="c1">// Reference to non Const</span> <span class="n">foreach</span><span class="p">(</span><span class="kt">int</span><span class="o">&amp;</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">assert</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">find</span><span class="p">(</span><span class="n">boost</span><span class="o">::</span><span class="n">begin</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="n">boost</span><span class="o">::</span><span class="n">end</span><span class="p">(</span><span class="n">a</span><span class="p">));</span> <span class="p">}</span> <span class="p">}</span> </pre></div></div><p> The code works as expected. Thank you for attention. </p> Ticket Eric Niebler Tue, 04 Mar 2008 23:15:34 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/1295#comment:4 https://svn.boost.org/trac10/ticket/1295#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">reopened</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> Sorry, no. If you try replacing the BOOST_FOREACH macro as you suggest and run the foreach regression tests, you'll see that this does not handle rvalue collections correctly. Besides, BOOST_FOREACH has well-defined customization hooks, which this implementation is not respecting. There is simply no way. </p> Ticket NN Mon, 07 Apr 2008 12:35:15 GMT <link>https://svn.boost.org/trac10/ticket/1295#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1295#comment:5</guid> <description> <p> Thanx, I will check the regression tests. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>NN</dc:creator> <pubDate>Sat, 12 Apr 2008 15:43:27 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1295#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1295#comment:6</guid> <description> <p> Here: <a class="ext-link" href="http://rsdn.ru/forum/message/2907464.1.aspx"><span class="icon">​</span>http://rsdn.ru/forum/message/2907464.1.aspx</a> I have some for each implementation. It does not passes rvalue. </p> <p> But the code is more optimized than BOOST_FOREACH. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Sat, 12 Apr 2008 15:51:12 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1295#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1295#comment:7</guid> <description> <p> I'll look at it once you get it to pass all of the regression tests. </p> </description> <category>Ticket</category> </item> </channel> </rss>