<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://blog.emptycrate.com">
<channel>
 <title>EmptyCrate - C++</title>
 <link>http://blog.emptycrate.com/taxonomy/term/31/0</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Emptycrate-C" /><feedburner:info uri="emptycrate-c" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
 <title>C++11: Decltype</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/PV0tkiQwfDI/469</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;decltype&lt;/code&gt;&lt;/span&gt; is a type specifier introduced in C++11. It behaves like a function that evaluates to the type of an object at compile time. This article is helping provide some more background information necessary for the more meatier C++11 articles to come.&lt;/p&gt;
&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="cpp geshifilter-cpp" style="font-family:monospace;"&gt;decltype&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#800080;"&gt;4.23&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; v &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color:#800080;"&gt;4.23&lt;/span&gt;&lt;span style="color: #000040;"&gt;*&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;5&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;In this example, the compiler is determining for us what the type of 4.23 * 5 would be and then giving that type to &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;v&lt;/code&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;With some help from &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&lt;span style="color: #0000ff;"&gt;typeid&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; we can see that the type assigned by the compiler is &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/469" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AVr71XPFx5c7LglMGRs4ddWZeBk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AVr71XPFx5c7LglMGRs4ddWZeBk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AVr71XPFx5c7LglMGRs4ddWZeBk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AVr71XPFx5c7LglMGRs4ddWZeBk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/PV0tkiQwfDI" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/469#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/168">C++11</category>
 <pubDate>Mon, 17 Oct 2011 11:00:00 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">469 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/469</feedburner:origLink></item>
<item>
 <title>C++ Partial Specialization of Templates</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/qAZQ3n6csD4/468</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;In this article we are going to introduce the concept of C++ Template Partial Specialization. This is meant to be just a primer on the topic and not exhaustive. The examples here will be used and referenced in later articles. A series of discussions about C++11, now that the language has been &lt;a href="http://www.iso.org/iso/pressrelease.htm?refid=Ref1472"&gt;finalized&lt;/a&gt;, will be coming shortly.&lt;/p&gt;
&lt;p&gt;In C++ a template class such as this:&lt;/p&gt;
&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="cpp geshifilter-cpp" style="font-family:monospace;"&gt;&lt;span style="color: #0000ff;"&gt;template&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typename&lt;/span&gt; LHS, &lt;span style="color: #0000ff;"&gt;typename&lt;/span&gt; RHS&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: #0000ff;"&gt;struct&lt;/span&gt; Add_With_Magic
&lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
  &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; go&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;const&lt;/span&gt; LHS &lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;t_lhs, &lt;span style="color: #0000ff;"&gt;const&lt;/span&gt; RHS &lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;t_rhs&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;
  &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/468" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fNYsHF-maTObW_OVLc9-pVvUgz8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fNYsHF-maTObW_OVLc9-pVvUgz8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fNYsHF-maTObW_OVLc9-pVvUgz8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fNYsHF-maTObW_OVLc9-pVvUgz8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/qAZQ3n6csD4" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/468#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/32">Templates</category>
 <pubDate>Sun, 16 Oct 2011 12:26:03 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">468 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/468</feedburner:origLink></item>
<item>
 <title>Nobody Understands C++: Part 11: Including Me (aka, Provide Consistent Semantics)</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/6dg3tvsKxFM/467</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I just spent the better part of the day debugging an insidious little bug. It really shouldn't have taken that long... I even had unit tests in place that covered the code in question! Right!?&lt;/p&gt;
&lt;p&gt;The fact is, C++ is a complex language and getting every detail right all the time can be hard. In this case I had a simple class with a &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;boost&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #007788;"&gt;shared_ptr&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; in it. In the copy constructor I wanted to clone the pointed to object, but needed to keep the pointer for other house keeping reasons.&lt;/p&gt;
&lt;p&gt;&lt;div class="geshifilter"&gt;&lt;pre class="cpp geshifilter-cpp" style="font-family:monospace;"&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; MyClass
&lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #008080;"&gt;:&lt;/span&gt;
  MyClass&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;const&lt;/span&gt; MyClass &lt;span style="color: #000040;"&gt;&amp;amp;&lt;/span&gt;t_other&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/467" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ym69JnmTpfPHiSDB-VEuLiwcfzY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ym69JnmTpfPHiSDB-VEuLiwcfzY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ym69JnmTpfPHiSDB-VEuLiwcfzY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ym69JnmTpfPHiSDB-VEuLiwcfzY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/6dg3tvsKxFM" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/467#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/167">Me</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/39">Nobody Understands</category>
 <pubDate>Tue, 01 Mar 2011 03:11:10 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">467 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/467</feedburner:origLink></item>
<item>
 <title>Microsoft's Failing Support For C++</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/484_kAhkRuE/465</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Microsoft recently posted a &lt;a href="http://blogs.msdn.com/b/vcblog/archive/2010/12/05/microsoft-tells-what-s-next-on-c.aspx"&gt;video&lt;/a&gt; on Channel 9 and their blogs describing the upcoming work they have planned for C++.&lt;/p&gt;
&lt;p&gt;The abstract of the video tries to point out Microsoft's unfailing devotion to C++ development:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/465" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p4363mTa4hLgri_Rf9KIgfnpijY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p4363mTa4hLgri_Rf9KIgfnpijY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p4363mTa4hLgri_Rf9KIgfnpijY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p4363mTa4hLgri_Rf9KIgfnpijY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/484_kAhkRuE" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/465#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/164">Microsoft</category>
 <pubDate>Fri, 07 Jan 2011 02:20:29 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">465 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/465</feedburner:origLink></item>
<item>
 <title>C++ AI FTW</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/8cV4CRBRGSg/461</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Considering the number of articles and polls we come across asking if C++ is dying or dead combined with the decrease in C++ job posting I have personally noticed, C++ sure is alive and well in the AI frontier.&lt;/p&gt;
&lt;p&gt;C++ takes or ties the &lt;a href="http://csclub.uwaterloo.ca/contest/rankings.php"&gt;top 27 places&lt;/a&gt; at the 2010 &lt;a href="http://csclub.uwaterloo.ca/contest"&gt;Google AI Challenge&lt;/a&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Iu0LEHLr_ah8WySfW4sN2_V5ASM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Iu0LEHLr_ah8WySfW4sN2_V5ASM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Iu0LEHLr_ah8WySfW4sN2_V5ASM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Iu0LEHLr_ah8WySfW4sN2_V5ASM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/8cV4CRBRGSg" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/461#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <pubDate>Tue, 27 Apr 2010 14:28:44 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">461 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/461</feedburner:origLink></item>
<item>
 <title>Nobody Understands C++: Part 10: C++ Is Not an Object Oriented Programming Language</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/Cm0cy00OGSQ/458</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;In the context of the rest of the &lt;a href="/taxonomy/term/39,31"&gt;Nobody Understands C++&lt;/a&gt; series, I feel like this one is redundant. But it seems like it needs to be said.&lt;/p&gt;
&lt;p&gt;C++ is not an object oriented programming language. &lt;a href="http://en.wikipedia.org/wiki/C%2B%2B"&gt;C++&lt;/a&gt; is a &lt;a href="http://en.wikipedia.org/wiki/Multi-paradigm_programming_language#Multi-paradigm_programming_language"&gt;multi-paradigm&lt;/a&gt; language that supports most of the major programming paradigms that have been widely accepted.&lt;/p&gt;
&lt;p&gt;Specifically, C++ supports:&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/458" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2seMMandjfy3yDNg9fUJF4zEmIY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2seMMandjfy3yDNg9fUJF4zEmIY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2seMMandjfy3yDNg9fUJF4zEmIY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2seMMandjfy3yDNg9fUJF4zEmIY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/Cm0cy00OGSQ" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/458#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/39">Nobody Understands</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/162">OOP</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Fri, 16 Apr 2010 16:57:07 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">458 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/458</feedburner:origLink></item>
<item>
 <title>C++0x Final Committee Draft</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/jXoXo9ack1w/456</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;As &lt;a href="http://herbsutter.com/2010/03/26/c0x-fcd-launches-will-be-freely-available-online-in-about-a-week/"&gt;others&lt;/a&gt; have pointed out, the Final Committee Draft (FCD) of the next C++ standard is now &lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3092.pdf"&gt;available&lt;/a&gt; for anyone to download.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/456" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xJFAjkEMReIxMZBT1Rdeg2GqUao/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xJFAjkEMReIxMZBT1Rdeg2GqUao/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xJFAjkEMReIxMZBT1Rdeg2GqUao/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xJFAjkEMReIxMZBT1Rdeg2GqUao/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/jXoXo9ack1w" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/456#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <pubDate>Wed, 14 Apr 2010 14:00:54 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">456 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/456</feedburner:origLink></item>
<item>
 <title>Upcoming GCC 4.5 Features</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/Ym9_DqVL0T0/457</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;GCC 4.5.0 has frozen and the &lt;a href="http://gcc.gnu.org/gcc-4.5/"&gt;release has made it to the &lt;a href="http://gcc.gnu.org/"&gt;front page&lt;/a&gt;. This is significant to me for 2 main reasons. &lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Faster Template Compiles&lt;/li&gt;
&lt;p&gt;A major side project of mine, &lt;a href="http://www.chaiscript.com"&gt;ChaiScript&lt;/a&gt; suffers from extremely long compile times. Part of the reason is because of 1000's of templates being instantiated for even the simplest project.&lt;/p&gt;
&lt;/ol&gt;&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/457" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oN_4IccHqc4lUlIgWx5kMXvChIk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oN_4IccHqc4lUlIgWx5kMXvChIk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oN_4IccHqc4lUlIgWx5kMXvChIk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oN_4IccHqc4lUlIgWx5kMXvChIk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/Ym9_DqVL0T0" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/457#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/116">GCC</category>
 <pubDate>Tue, 06 Apr 2010 23:22:04 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">457 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/457</feedburner:origLink></item>
<item>
 <title>Developer Day - Boulder 2009</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/NBfZlU6Ur0I/450</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;This past Saturday I attended the Developer Day meeting in Boulder, CO. Overall the day was beneficial and interesting even tho it was more dynamic languages centric and very few things applied directly to my C++ development.&lt;/p&gt;
&lt;p&gt;I did present &lt;a href="http://www.chaiscript.com"&gt;ChaiScript&lt;/a&gt; during a &lt;a href="http://en.wikipedia.org/wiki/Lightning_Talk"&gt;lightning talk&lt;/a&gt;. I'm not sure if I said anything coherent or not but a couple of people chatted with me about it afterward, so I guess it wasn't horrible.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/450" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CkcSPEEq5CLxS4-5O3ZAvKTVRnU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CkcSPEEq5CLxS4-5O3ZAvKTVRnU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CkcSPEEq5CLxS4-5O3ZAvKTVRnU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CkcSPEEq5CLxS4-5O3ZAvKTVRnU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/NBfZlU6Ur0I" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/450#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/148">Developer Day</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Wed, 14 Oct 2009 11:00:00 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">450 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/450</feedburner:origLink></item>
<item>
 <title>Nobody Understands C++: Part 9: Error Handling</title>
 <link>http://feedproxy.google.com/~r/Emptycrate-C/~3/45eqHByBZdY/449</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I was recently at a talk where the speaker was discussing the history of C++. He argued that one problem with C++ was that its design requirements included backward compatibility with C code, and one fallout of this was the requirement to support all previous types of error handling as well as adding exceptions. That is, C++ supports:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Returning of error codes.&lt;/li&gt;
&lt;li&gt;Error handling functions.&lt;/li&gt;
&lt;li&gt;Exception handling.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It is true that C++ supports all 3 of these mechanisms, as well as some other cruft left behind from C that unnecessarily encumbers the language. The speaker's point on this one particular case, however, is lost to the fact that &lt;em&gt;every&lt;em&gt; language supports the first two.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/449" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xEzhDwvGm77MR90sPYvcOmkMctY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xEzhDwvGm77MR90sPYvcOmkMctY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xEzhDwvGm77MR90sPYvcOmkMctY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xEzhDwvGm77MR90sPYvcOmkMctY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Emptycrate-C/~4/45eqHByBZdY" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/449#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/147">Error Handling</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/39">Nobody Understands</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Tue, 13 Oct 2009 11:00:00 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">449 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/449</feedburner:origLink></item>
</channel>
</rss>

