<?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; Smart Pointers</title>
	<atom:link href="http://nealabq.com/blog/category/smart-pointers/feed/" rel="self" type="application/rss+xml" />
	<link>http://nealabq.com/blog</link>
	<description>Probing dark corners while dodging the grues</description>
	<lastBuildDate>Tue, 29 Jun 2010 19:09:34 +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>Arrays, shared_ptr&lt; T &gt;s, and deleters</title>
		<link>http://nealabq.com/blog/2008/12/02/array_deleter/</link>
		<comments>http://nealabq.com/blog/2008/12/02/array_deleter/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 05:42:24 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Boost]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Smart Pointers]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=618</guid>
		<description><![CDATA[In my last few posts about shared_ptr&#60;T>s I&#8217;ve been using a struct called private_deleter. When you first attach a target object to a shared_ptr&#60;T> you can also specify a deleter, which is a functor with an operator() that takes a single argument, a pointer to the target object, and deletes it. // Instances of some_type [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2008/12/02/array_deleter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Specializing make_shared&lt; T &gt; and allocate_shared&lt; T &gt;</title>
		<link>http://nealabq.com/blog/2008/12/01/make_shared/</link>
		<comments>http://nealabq.com/blog/2008/12/01/make_shared/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 23:23:53 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Boost]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Smart Pointers]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=606</guid>
		<description><![CDATA[In my last post I talked about factory_type, a class that supplies a factory function make_new( ) as a static method. (In retrospect, I suppose factory_type isn&#8217;t such a good name since it sounds like the instances are factories. Better names might be factory_made_object_type or gizmo_type.) Anyway, the code looked like this: # include &#60;boost/shared_ptr.hpp> [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2008/12/01/make_shared/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Class factories and shared_ptr&lt;T&gt;</title>
		<link>http://nealabq.com/blog/2008/11/28/factory/</link>
		<comments>http://nealabq.com/blog/2008/11/28/factory/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 00:12:47 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Boost]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Smart Pointers]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=602</guid>
		<description><![CDATA[One way to control object memory and initialization is to wrap object creation in a class factory. This is the point of the proposed make_shared&#60;T>(..) and allocate_shared&#60;T>(..) standard library functions. But it is easy to roll your own simple factory function: # include &#60;boost/shared_ptr.hpp> using boost::shared_ptr; class factory_type { /* this_type type alias */ private: [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2008/11/28/factory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>static_pointer_cast&lt;T&gt;(..) for weak_ptr&lt;T&gt;s</title>
		<link>http://nealabq.com/blog/2008/11/26/static_pointer_cast/</link>
		<comments>http://nealabq.com/blog/2008/11/26/static_pointer_cast/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 00:29:24 +0000</pubDate>
		<dc:creator>Neal</dc:creator>
				<category><![CDATA[Boost]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Smart Pointers]]></category>

		<guid isPermaLink="false">http://nealabq.com/blog/?p=589</guid>
		<description><![CDATA[In the last post I mentioned that the following functions are not defined for weak_ptr&#60;T> (in Boost 1_37_0): const_pointer_cast&#60;T>(..) static_pointer_cast&#60;T>(..) dynamic_pointer_cast&#60;T>(..) Boost is a very nice and carefully thought-out library, so these functions may be missing for a good reason. Or maybe they&#8217;re just considered not very important because weak pointers are not often passed [...]]]></description>
		<wfw:commentRss>http://nealabq.com/blog/2008/11/26/static_pointer_cast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
