<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How to write abstract iterators in C++</title>
	<atom:link href="http://www.ocoudert.com/blog/2010/07/07/how-to-write-abstract-iterators-in-c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ocoudert.com/blog/2010/07/07/how-to-write-abstract-iterators-in-c/</link>
	<description>My take on tech --and other topics</description>
	<lastBuildDate>Sun, 25 Dec 2011 18:59:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: Olivier Coudert</title>
		<link>http://www.ocoudert.com/blog/2010/07/07/how-to-write-abstract-iterators-in-c/comment-page-1/#comment-2886</link>
		<dc:creator>Olivier Coudert</dc:creator>
		<pubDate>Thu, 08 Jul 2010 10:02:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.ocoudert.com/blog/?p=859#comment-2886</guid>
		<description>Hi Srihari,

First of, thanks for spotting the typos --I corrected them in the code. I also added an example to illustrate the use of virtual methods in the iterator hierarchy, as well as the essential type checking for operator== before calling the (virtual) method &#039;bool equal(const ItrBase&lt;e&gt;&amp; o) const&#039;.

Yes, the idea here is to hide the implementation of the visitor and its gory details, so that the user only see a STL-like API (which means that any STL application using iterators can be applied). 

Boost&#039;s iterator_facade and iterator_adaptor are answers to similar concerns. The main differences here are that the API is exactly as an STL iterator --so you can conveniently reuse any STL algorithm that takes a range--.&lt;/e&gt;</description>
		<content:encoded><![CDATA[<p>Hi Srihari,</p>
<p>First of, thanks for spotting the typos &#8211;I corrected them in the code. I also added an example to illustrate the use of virtual methods in the iterator hierarchy, as well as the essential type checking for operator== before calling the (virtual) method &#8216;bool equal(const ItrBase<e>&#038; o) const&#8217;.</p>
<p>Yes, the idea here is to hide the implementation of the visitor and its gory details, so that the user only see a STL-like API (which means that any STL application using iterators can be applied). </p>
<p>Boost&#8217;s iterator_facade and iterator_adaptor are answers to similar concerns. The main differences here are that the API is exactly as an STL iterator &#8211;so you can conveniently reuse any STL algorithm that takes a range&#8211;.</e></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: srihari</title>
		<link>http://www.ocoudert.com/blog/2010/07/07/how-to-write-abstract-iterators-in-c/comment-page-1/#comment-2879</link>
		<dc:creator>srihari</dc:creator>
		<pubDate>Thu, 08 Jul 2010 04:56:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.ocoudert.com/blog/?p=859#comment-2879</guid>
		<description>That&#039;s nice, Olivier!

Isn&#039;t this pretty much similar to Boost&#039;s iterator_facade?</description>
		<content:encoded><![CDATA[<p>That&#8217;s nice, Olivier!</p>
<p>Isn&#8217;t this pretty much similar to Boost&#8217;s iterator_facade?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

