<?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 blogs</title>
 <link>http://blog.emptycrate.com/blog</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/EmptycrateBlogs" /><feedburner:info uri="emptycrateblogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
 <title>C++11: Auto</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/eWKV7K0a0gc/475</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;We've already covered &lt;a href="/node/469"&gt;C++11 decltype&lt;/a&gt; and why you should &lt;a href="http://blog.emptycrate.com/node/471"&gt;start using C++11 features today&lt;/a&gt;. Now we will move on to one of the most widely supported C++11 features: the new &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&lt;span style="color: #0000ff;"&gt;auto&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; keyword.&lt;/p&gt;
&lt;p&gt;&lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&lt;span style="color: #0000ff;"&gt;auto&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; is supported currently by g++ as of 4.4, clang and msvc since 10. So you are safe using it today if you don't need to support any older compilers.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/475" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0Qc3ptjwhYDV7HgK9kpxbbZThQY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0Qc3ptjwhYDV7HgK9kpxbbZThQY/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/0Qc3ptjwhYDV7HgK9kpxbbZThQY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0Qc3ptjwhYDV7HgK9kpxbbZThQY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/eWKV7K0a0gc" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/475#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/168">C++11</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Mon, 27 Feb 2012 00:45:43 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">475 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/475</feedburner:origLink></item>
<item>
 <title>Are You Using make_shared Yet?</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/ElEmt4VhDS0/474</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Recently, while watching the &lt;a href="http://channel9.msdn.com/Events/GoingNative/GoingNative-2012"&gt;GoingNative&lt;/a&gt; conference, I learned about the new &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;std&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; helper function &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #007788;"&gt;make_shared&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;. In the &lt;a href="http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/STL11-Magic-Secrets"&gt;talk&lt;/a&gt; Stephan T. Lavavej discusses the performance improvements they've made. It seems &lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #007788;"&gt;make_shared&lt;/span&gt;&lt;/code&gt;&lt;/span&gt; can save a few extra allocations and a bit of memory overhead. This can be significant if you dynamically create lots of objects.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/474" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/G2Xqq3W8e-OBCp5W0xqujHga3DU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G2Xqq3W8e-OBCp5W0xqujHga3DU/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/G2Xqq3W8e-OBCp5W0xqujHga3DU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G2Xqq3W8e-OBCp5W0xqujHga3DU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/ElEmt4VhDS0" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/474#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/35">Boost</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/168">C++11</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Thu, 23 Feb 2012 16:46:55 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">474 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/474</feedburner:origLink></item>
<item>
 <title>Using Non-Standard Resolutions with VirtualBox RDP</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/KFiQLRXEtSY/473</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;I like to connect to Virtual Box guest operating systems remotely over RDP connections. This generally works well except if I connect from my 1280x720 laptop to a Windows guest. In this case the Windows guest will tend to resize to a "standard" resolution that fits inside of the 1280x720, which is 800x600. This can be rather obnoxious.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/473" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BANIvqqJ5w41MYzrW4b-QHiPxRM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BANIvqqJ5w41MYzrW4b-QHiPxRM/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/BANIvqqJ5w41MYzrW4b-QHiPxRM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BANIvqqJ5w41MYzrW4b-QHiPxRM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/KFiQLRXEtSY" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/473#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/170">RDP</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/169">VirtualBox</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/112">Windows</category>
 <pubDate>Tue, 21 Feb 2012 19:52:51 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">473 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/473</feedburner:origLink></item>
<item>
 <title>Trigraphs, Digraphs and Alternative Tokens</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/o0KcAr_4lCw/472</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Quick, which language is the following code written in?&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: #000040;"&gt;%&lt;/span&gt;&lt;span style="color: #008080;"&gt;:&lt;/span&gt;include &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;iostream&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; main&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt;argv&lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;:??&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;
&lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000040;"&gt;%&lt;/span&gt;
  &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color:#800080;"&gt;0&lt;/span&gt;;
  &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; j &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color:#800080;"&gt;0&lt;/span&gt;;
&amp;nbsp;
  &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;; i &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;10&lt;/span&gt; and j &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;11&lt;/span&gt;; &lt;span style="color: #000040;"&gt;++&lt;/span&gt;i, &lt;span style="color: #000040;"&gt;++&lt;/span&gt;j&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #008080;"&gt;??&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; 
    std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;cout&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; not &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;i bitand j&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #007788;"&gt;endl&lt;/span&gt;;
  &lt;span style="color: #000040;"&gt;%&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: #008080;"&gt;??&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;If you guessed standard C++, you'd be correct. C and C++ support a set of alternative tokens and character sequences to account for languages and keyboards that do not have easy access to characters that those of us with US keyboards consider to be normal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trigraph Sequences&lt;/strong&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/472" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OJByTIGuY_XPhDpciYtwJ1a3DUg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OJByTIGuY_XPhDpciYtwJ1a3DUg/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/OJByTIGuY_XPhDpciYtwJ1a3DUg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OJByTIGuY_XPhDpciYtwJ1a3DUg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/o0KcAr_4lCw" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/472#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Mon, 13 Feb 2012 15:29:41 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">472 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/472</feedburner:origLink></item>
<item>
 <title>Start Using C++11 Now</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/Hs1r_chxD8c/471</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Every major platform and compiler now supports some aspect of the new C++ standard accepted in 2011. This means it is currently possible to write code that uses some of C++11 while maintaining cross-platform compatibility. &lt;/p&gt;
&lt;p&gt;Why should you care?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;By enabling C++11 compatibility with your compiler you are future proofing your code. You will be able to catch any portability errors sooner and be ready for the full move.&lt;/li&gt;
&lt;/ol&gt;&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/471" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pQx4hR55afnD2NPnF-B5u7-dyKA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pQx4hR55afnD2NPnF-B5u7-dyKA/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/pQx4hR55afnD2NPnF-B5u7-dyKA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pQx4hR55afnD2NPnF-B5u7-dyKA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/Hs1r_chxD8c" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/471#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>
 <category domain="http://blog.emptycrate.com/taxonomy/term/56">Crossplatform</category>
 <pubDate>Mon, 13 Feb 2012 04:47:45 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">471 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/471</feedburner:origLink></item>
<item>
 <title>Double vs. Float, Which is Better?</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/7OF4g01JVdc/470</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Neither &lt;a href="http://www.amazon.com/gp/product/0321113586/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=empcra-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321113586"&gt;C++ Coding Standards&lt;/a&gt; nor &lt;a href="http://www.amazon.com/gp/product/0321334876/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=empcra-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321334876"&gt;Effective C++&lt;/a&gt; addresses the question of which float point type is best to use and in what situations.&lt;/p&gt;
&lt;p&gt;There are three floating point types in C and C++:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&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;/li&gt;
&lt;li&gt;&lt;span class="geshifilter"&gt;&lt;code class="cpp geshifilter-cpp"&gt;&lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;What the Standard Has to Say&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are exactly two guarantees provided by the standard:&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/470" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4QwabpOi6plFG7RezgzG1PtPtQk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4QwabpOi6plFG7RezgzG1PtPtQk/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/4QwabpOi6plFG7RezgzG1PtPtQk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4QwabpOi6plFG7RezgzG1PtPtQk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/7OF4g01JVdc" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/470#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/31">C++</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/27">Programming</category>
 <pubDate>Sat, 11 Feb 2012 15:16:28 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">470 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/470</feedburner:origLink></item>
<item>
 <title>C++11: Decltype</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~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/sPsL2SBm41338r_4l7RgsykwHN8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sPsL2SBm41338r_4l7RgsykwHN8/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/sPsL2SBm41338r_4l7RgsykwHN8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sPsL2SBm41338r_4l7RgsykwHN8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~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/EmptycrateBlogs/~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/SiRN4ruhCwAl3LnJGpaFuRr5oks/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SiRN4ruhCwAl3LnJGpaFuRr5oks/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/SiRN4ruhCwAl3LnJGpaFuRr5oks/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SiRN4ruhCwAl3LnJGpaFuRr5oks/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~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/EmptycrateBlogs/~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/VdrT1OlQ5vRegEoPodcItcbl9h4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VdrT1OlQ5vRegEoPodcItcbl9h4/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/VdrT1OlQ5vRegEoPodcItcbl9h4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VdrT1OlQ5vRegEoPodcItcbl9h4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~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>Retro Sierra Gaming</title>
 <link>http://feedproxy.google.com/~r/EmptycrateBlogs/~3/Q_k4bT2RX_c/466</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;If you're a fan of retro gaming in general and Sierra adventure games specifically, like I am, you might appreciate the following. I purchased the Quest for Glory Anthology (I - IV) and Quest for Glory V around 1998, when they were new. The &lt;a href="http://en.wikipedia.org/wiki/Quest_for_Glory"&gt;Quest for Glory&lt;/a&gt; series is one of the few adventure games with RPG elements which allows you to create a character in one game and carry it forward from game to game. For the past 12 years I've been intending to play start to finish through all 5 games.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;p&gt;&lt;a href="http://blog.emptycrate.com/node/466" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UkLKZZl1R51QnOMH4edDX63uUWw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UkLKZZl1R51QnOMH4edDX63uUWw/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/UkLKZZl1R51QnOMH4edDX63uUWw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UkLKZZl1R51QnOMH4edDX63uUWw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/EmptycrateBlogs/~4/Q_k4bT2RX_c" height="1" width="1"/&gt;</description>
 <comments>http://blog.emptycrate.com/node/466#comments</comments>
 <category domain="http://blog.emptycrate.com/taxonomy/term/60">Adventure Gaming</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/166">Retro</category>
 <category domain="http://blog.emptycrate.com/taxonomy/term/165">Sierra</category>
 <pubDate>Sun, 09 Jan 2011 02:42:47 +0000</pubDate>
 <dc:creator>jason</dc:creator>
 <guid isPermaLink="false">466 at http://blog.emptycrate.com</guid>
<feedburner:origLink>http://blog.emptycrate.com/node/466</feedburner:origLink></item>
</channel>
</rss>

