<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comments on: std::iterator is deprecated: Why, What It Was, and What to Use Instead	</title>
	<atom:link href="https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/</link>
	<description>Jonathan Boccara&#039;s blog</description>
	<lastBuildDate>Wed, 26 Sep 2018 07:21:00 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.3</generator>
	<item>
		<title>
		By: Mirality		</title>
		<link>https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/#comment-1332</link>

		<dc:creator><![CDATA[Mirality]]></dc:creator>
		<pubDate>Wed, 26 Sep 2018 07:21:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=2721#comment-1332</guid>

					<description><![CDATA[How can the base class be well-formed if one of the typedefs is missing, since the base class would look exactly like libstdc++&#039;s iterator_traits, which is not well-formed for exactly the same reason?

At least according to the comments in libc++&#039;s implementation, it&#039;s not actually intended to support the case where &quot;some&quot; typedefs are missing.  It supports exactly two cases: either your iterator provides iterator_category, in which case it is expected to provide ALL of the other typedefs as well, which iterator_traits then forwards -- or it does not, in which case iterator_traits provides NONE of the typedefs.  If something other than this actually works then it presumably is not intended.]]></description>
			<content:encoded><![CDATA[<p>How can the base class be well-formed if one of the typedefs is missing, since the base class would look exactly like libstdc++&#8217;s iterator_traits, which is not well-formed for exactly the same reason?</p>
<p>At least according to the comments in libc++&#8217;s implementation, it&#8217;s not actually intended to support the case where &#8220;some&#8221; typedefs are missing.  It supports exactly two cases: either your iterator provides iterator_category, in which case it is expected to provide ALL of the other typedefs as well, which iterator_traits then forwards &#8212; or it does not, in which case iterator_traits provides NONE of the typedefs.  If something other than this actually works then it presumably is not intended.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ariath		</title>
		<link>https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/#comment-977</link>

		<dc:creator><![CDATA[Ariath]]></dc:creator>
		<pubDate>Thu, 10 May 2018 22:39:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=2721#comment-977</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/#comment-976&quot;&gt;Sergio Adán&lt;/a&gt;.

Thanks, but the question was why libc++ is well-formed, not why libstdc++ is ill-formed because it&#039;s pretty obvious.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/#comment-976">Sergio Adán</a>.</p>
<p>Thanks, but the question was why libc++ is well-formed, not why libstdc++ is ill-formed because it&#8217;s pretty obvious.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sergio Adán		</title>
		<link>https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/#comment-976</link>

		<dc:creator><![CDATA[Sergio Adán]]></dc:creator>
		<pubDate>Wed, 09 May 2018 09:47:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=2721#comment-976</guid>

					<description><![CDATA[See C++17 draft § 14.6.2.1 Dependent names
7 If a qualified-id in which the nested-name-specifier refers to the current instantiation is not a member of
the current instantiation or a member of an unknown specialization, the program is ill-formed even if the
template containing the qualified-id is not instantiated;

libstdc++ is ill-formed when at least one of the typedefs is missing. Templates are compiled on demand but the template must be well-formed and it includes the types defined in the template.

libc++ is well-formed because types are not explicitly set in the template (and they are not used in the template) but maybe in the inherited class. So until someone needs a type that is not set the program will be ok]]></description>
			<content:encoded><![CDATA[<p>See C++17 draft § 14.6.2.1 Dependent names<br />
7 If a qualified-id in which the nested-name-specifier refers to the current instantiation is not a member of<br />
the current instantiation or a member of an unknown specialization, the program is ill-formed even if the<br />
template containing the qualified-id is not instantiated;</p>
<p>libstdc++ is ill-formed when at least one of the typedefs is missing. Templates are compiled on demand but the template must be well-formed and it includes the types defined in the template.</p>
<p>libc++ is well-formed because types are not explicitly set in the template (and they are not used in the template) but maybe in the inherited class. So until someone needs a type that is not set the program will be ok</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sonu Lohani		</title>
		<link>https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/#comment-975</link>

		<dc:creator><![CDATA[Sonu Lohani]]></dc:creator>
		<pubDate>Wed, 09 May 2018 04:14:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=2721#comment-975</guid>

					<description><![CDATA[Nice post. Thanks for the info.]]></description>
			<content:encoded><![CDATA[<p>Nice post. Thanks for the info.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
