<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code Obscurata &#187; C/C++</title>
	<atom:link href="http://nealabq.com/blog/category/cc/feed/" rel="self" type="application/rss+xml" />
	<link>http://nealabq.com/blog</link>
	<description>... dodging grues in the dark</description>
	<lastBuildDate>Mon, 08 Nov 2010 17:26:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Exactly when are templates expanded?</title>
		<link>http://nealabq.com/blog/2009/01/06/templates_expanded/</link>
		<comments>http://nealabq.com/blog/2009/01/06/templates_expanded/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:18:22 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=763</guid>
		<description><![CDATA[C++ templates are only expanded as necessary. The following is error-free even though does_not_exist() does indeed not exist. The method never_called() is never called and thus never expanded, and so does_not_exist() is never needed. template< typename X > struct use_non_existant_stuff { int never_called( ) { does_not_exist( ); } }; // no errors or warnings here [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2009/01/06/templates_expanded/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Erlang as C++ code generator</title>
		<link>http://nealabq.com/blog/2009/01/02/erlang/</link>
		<comments>http://nealabq.com/blog/2009/01/02/erlang/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 23:16:51 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[metaprogramming]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=708</guid>
		<description><![CDATA[In my last post I talked about how templates could be extended to manipulate and transform bits of the C++ syntax tree. Parsed C++ syntax objects, like block statements and parameter lists, are just the kind of thing you need when generating code. But there are other ways to approach the problem. You can generate [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2009/01/02/erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Templates and the C++ syntax tree</title>
		<link>http://nealabq.com/blog/2008/12/26/template_syntax_tree/</link>
		<comments>http://nealabq.com/blog/2008/12/26/template_syntax_tree/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 00:34:00 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[metaprogramming]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=689</guid>
		<description><![CDATA[In my last few posts I&#8217;ve been writing about C++0x templates. Specifically I&#8217;ve been talking about how to make template classes easier to read by allowing more-imperative/less-declarative and more-iterative/less-recursive class definitions. I&#8217;ve talked about extending the &#8230; packing operator and adding code-generating scripting to the compiler. The C++ compiler already has &#8220;scripting&#8221; of sorts, in [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2008/12/26/template_syntax_tree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Variadic tuple&lt;..&gt; &#8212; imperative meta programming</title>
		<link>http://nealabq.com/blog/2008/12/22/imperative/</link>
		<comments>http://nealabq.com/blog/2008/12/22/imperative/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 22:27:33 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Boost]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=678</guid>
		<description><![CDATA[Since my last two posts (here and here) are about how &#8230; might unpack and generate code if it were very smart, I thought I&#8217;d bring up a more difficult case. How do you build templated constructors inside the variadic template tuple class? Remember, this is all fantasy code. The &#8230; operator will not actually [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2008/12/22/imperative/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

