<?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 for Well, technically...</title>
	<atom:link href="http://blog.hashpling.org/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hashpling.org</link>
	<description>Don&#039;t worry, I&#039;ve hidden all the complexity behind a macro.</description>
	<lastBuildDate>Sat, 02 Jan 2010 17:33:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Exponent operator overloading by Andy Balaam</title>
		<link>http://blog.hashpling.org/exponent-operator-overloading/comment-page-1/#comment-2205</link>
		<dc:creator>Andy Balaam</dc:creator>
		<pubDate>Sat, 02 Jan 2010 17:33:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.hashpling.org/?p=92#comment-2205</guid>
		<description>Convert to exponent, then apply exponent.  It kind of makes sense.

I vote for more operator overloading evil.</description>
		<content:encoded><![CDATA[<p>Convert to exponent, then apply exponent.  It kind of makes sense.</p>
<p>I vote for more operator overloading evil.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Implementation of operator+ by Andy Balaam</title>
		<link>http://blog.hashpling.org/implementation_of_operator_plus/comment-page-1/#comment-1867</link>
		<dc:creator>Andy Balaam</dc:creator>
		<pubDate>Tue, 19 May 2009 10:43:05 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=58#comment-1867</guid>
		<description>Or rather, miss the lack of an &amp;.</description>
		<content:encoded><![CDATA[<p>Or rather, miss the lack of an &amp;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Implementation of operator+ by Andy Balaam</title>
		<link>http://blog.hashpling.org/implementation_of_operator_plus/comment-page-1/#comment-1866</link>
		<dc:creator>Andy Balaam</dc:creator>
		<pubDate>Tue, 19 May 2009 10:42:49 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=58#comment-1866</guid>
		<description>I must say I much prefer Take 3 over the original implementation, just for its clarity (to me).  I could easily miss an &amp; and be confused.</description>
		<content:encoded><![CDATA[<p>I must say I much prefer Take 3 over the original implementation, just for its clarity (to me).  I could easily miss an &amp; and be confused.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dependent bases, virtual functions, what does this call? by Andy Balaam</title>
		<link>http://blog.hashpling.org/dependent-bases-virtual-functions-what-does-this-call/comment-page-1/#comment-1688</link>
		<dc:creator>Andy Balaam</dc:creator>
		<pubDate>Tue, 21 Apr 2009 10:42:30 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=64#comment-1688</guid>
		<description>I could live with it if it were everywhere.  It is the inconsistency that hurts me.

Python requires &#039;self.&#039;, which is fine.  Nice and explicit.</description>
		<content:encoded><![CDATA[<p>I could live with it if it were everywhere.  It is the inconsistency that hurts me.</p>
<p>Python requires &#8217;self.&#8217;, which is fine.  Nice and explicit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dependent bases, virtual functions, what does this call? by hashpling</title>
		<link>http://blog.hashpling.org/dependent-bases-virtual-functions-what-does-this-call/comment-page-1/#comment-1687</link>
		<dc:creator>hashpling</dc:creator>
		<pubDate>Tue, 21 Apr 2009 10:39:48 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=64#comment-1687</guid>
		<description>In which case you have a different set of problems and a diktat of &#039;never use this-&gt;&#039; is an acceptable stance as the chances of them being in a situation where &#039;this-&gt;&#039; is required and not understanding that the diktat can and should be ignored is vanishingly small. (Assuming that, like me, you are against unnecessary &#039;this-&gt;&#039; which is often a sign of over-reliance on so-called &#039;intellisense&#039;.)</description>
		<content:encoded><![CDATA[<p>In which case you have a different set of problems and a diktat of &#8216;never use this->&#8217; is an acceptable stance as the chances of them being in a situation where &#8216;this->&#8217; is required and not understanding that the diktat can and should be ignored is vanishingly small. (Assuming that, like me, you are against unnecessary &#8216;this->&#8217; which is often a sign of over-reliance on so-called &#8216;intellisense&#8217;.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dependent bases, virtual functions, what does this call? by Andy Balaam</title>
		<link>http://blog.hashpling.org/dependent-bases-virtual-functions-what-does-this-call/comment-page-1/#comment-1686</link>
		<dc:creator>Andy Balaam</dc:creator>
		<pubDate>Tue, 21 Apr 2009 10:27:40 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=64#comment-1686</guid>
		<description>They always look blank.</description>
		<content:encoded><![CDATA[<p>They always look blank.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dependent bases, virtual functions, what does this call? by hashpling</title>
		<link>http://blog.hashpling.org/dependent-bases-virtual-functions-what-does-this-call/comment-page-1/#comment-1635</link>
		<dc:creator>hashpling</dc:creator>
		<pubDate>Thu, 16 Apr 2009 18:47:41 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=64#comment-1635</guid>
		<description>Just ask them if they are accessing a member of a dependent base via an otherwise non-dependent expression. If they look blank, then it&#039;s your queue to shout: &quot;so why are you using &#039;this-&gt;&#039;?&quot;.

I made this point on a SO question, but it&#039;s so low down that no-one&#039;s even bothered to downvote it.</description>
		<content:encoded><![CDATA[<p>Just ask them if they are accessing a member of a dependent base via an otherwise non-dependent expression. If they look blank, then it&#8217;s your queue to shout: &#8220;so why are you using &#8216;this->&#8217;?&#8221;.</p>
<p>I made this point on a SO question, but it&#8217;s so low down that no-one&#8217;s even bothered to downvote it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dependent bases, virtual functions, what does this call? by Andy Balaam</title>
		<link>http://blog.hashpling.org/dependent-bases-virtual-functions-what-does-this-call/comment-page-1/#comment-1627</link>
		<dc:creator>Andy Balaam</dc:creator>
		<pubDate>Thu, 16 Apr 2009 09:08:14 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=64#comment-1627</guid>
		<description>So now I have to check very carefully before berating my colleagues for writing this-&gt;f() rather than just f().</description>
		<content:encoded><![CDATA[<p>So now I have to check very carefully before berating my colleagues for writing this-&gt;f() rather than just f().</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Address Space Monitor 0.6 Release by Mark</title>
		<link>http://blog.hashpling.org/address-space-monitor-06-release/comment-page-1/#comment-1257</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Mon, 09 Mar 2009 15:47:24 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/address-space-monitor-06-release/#comment-1257</guid>
		<description>Hey,

Just wanted to thank you for this utterly awesome thing. I&#039;ve been casting about in the dark for days looking for an obscure bug, and have now seen the light thanks to Address Space Monitor. Being able to see the address space usage immediately put me on the right track. Wonderful!

Thanks,
Mark</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>Just wanted to thank you for this utterly awesome thing. I&#8217;ve been casting about in the dark for days looking for an obscure bug, and have now seen the light thanks to Address Space Monitor. Being able to see the address space usage immediately put me on the right track. Wonderful!</p>
<p>Thanks,<br />
Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pass by reference, return by value, etc by hashpling</title>
		<link>http://blog.hashpling.org/pass-by-reference-return-by-value-etc/comment-page-1/#comment-1087</link>
		<dc:creator>hashpling</dc:creator>
		<pubDate>Tue, 27 Jan 2009 22:27:25 +0000</pubDate>
		<guid isPermaLink="false">http://ccgi.hashpling.plus.com/blog/?p=36#comment-1087</guid>
		<description>For the example that I&#039;m looking at, I&#039;m really thinking of the non-inline operator+= as the function of real value. The inline operator+ is an inline helper function to allow the example class to be used more flexibly.

The operator+ implementation is essentially providing client code as efficient a recipe as possible for using operator+= automatically in addition expressions. I don&#039;t really have any problems with slightly different signatures so long as they don&#039;t introduce any semantic gotchas.

As for slicing, because operator+ creates a new object, it&#039;s only really fully applicable to types with value semantics. For this reason I don&#039;t really consider slicing a particular issue.

Consider the following.

class Derived : public Base { /* ... */ }

Base operator+( const Base&amp; l, const Base&amp; r ) { /* ... */ }

Whatever the details of the implementation, if there is no operator+ defined for Derived types, then the expression d1 + d2 will take two values of derived types and return a result whose complete type is just Base. Conceptually, the answer is sliced from what it could (should?) have been, even if neither parameter has been sliced in and of itself.

My preferred method of eliminating slicing concerns is to keep base classes abstract and to only implement free operator implementations for the most derived concrete classes.</description>
		<content:encoded><![CDATA[<p>For the example that I&#8217;m looking at, I&#8217;m really thinking of the non-inline operator+= as the function of real value. The inline operator+ is an inline helper function to allow the example class to be used more flexibly.</p>
<p>The operator+ implementation is essentially providing client code as efficient a recipe as possible for using operator+= automatically in addition expressions. I don&#8217;t really have any problems with slightly different signatures so long as they don&#8217;t introduce any semantic gotchas.</p>
<p>As for slicing, because operator+ creates a new object, it&#8217;s only really fully applicable to types with value semantics. For this reason I don&#8217;t really consider slicing a particular issue.</p>
<p>Consider the following.</p>
<p>class Derived : public Base { /* &#8230; */ }</p>
<p>Base operator+( const Base&#038; l, const Base&#038; r ) { /* &#8230; */ }</p>
<p>Whatever the details of the implementation, if there is no operator+ defined for Derived types, then the expression d1 + d2 will take two values of derived types and return a result whose complete type is just Base. Conceptually, the answer is sliced from what it could (should?) have been, even if neither parameter has been sliced in and of itself.</p>
<p>My preferred method of eliminating slicing concerns is to keep base classes abstract and to only implement free operator implementations for the most derived concrete classes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
