<?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 on: A Nearly-Automatic C++ Run-Time Type System</title>
	<atom:link href="http://www.realityprime.com/articles/the-audience/feed" rel="self" type="application/rss+xml" />
	<link>http://www.realityprime.com/articles/the-audience</link>
	<description>Advanced Technology Research</description>
	<lastBuildDate>Mon, 23 Aug 2010 18:10:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: avi</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-23115</link>
		<dc:creator>avi</dc:creator>
		<pubDate>Mon, 30 Nov 2009 04:20:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-23115</guid>
		<description>Updated here: 
http://www.realityprime.com/articles/c-runtime-type-system</description>
		<content:encoded><![CDATA[<p>Updated here:<br />
<a href="http://www.realityprime.com/articles/c-runtime-type-system" rel="nofollow">http://www.realityprime.com/articles/c-runtime-type-system</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: avi</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-22227</link>
		<dc:creator>avi</dc:creator>
		<pubDate>Fri, 16 Oct 2009 18:15:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-22227</guid>
		<description>I&#039;m hoping to get this released, but I used the original version for a company (I open sourced it to them) and I need to do some work to extricate it from any changes I made for them. 

Long story short, this just needs me to spend 1-2 hours cleaning it up, and I haven&#039;t had the time. Sorry for the delay.</description>
		<content:encoded><![CDATA[<p>I&#8217;m hoping to get this released, but I used the original version for a company (I open sourced it to them) and I need to do some work to extricate it from any changes I made for them. </p>
<p>Long story short, this just needs me to spend 1-2 hours cleaning it up, and I haven&#8217;t had the time. Sorry for the delay.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-22106</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Mon, 12 Oct 2009 13:51:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-22106</guid>
		<description>Hi Avi,

Your system looks quite interesting, and I&#039;d love to take a look at it. Have you released the source yet?

Cheers</description>
		<content:encoded><![CDATA[<p>Hi Avi,</p>
<p>Your system looks quite interesting, and I&#8217;d love to take a look at it. Have you released the source yet?</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Avi</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-13372</link>
		<dc:creator>Avi</dc:creator>
		<pubDate>Fri, 16 Jan 2009 20:38:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-13372</guid>
		<description>I&#039;ll try to get it posted soon. Sorry for the delay.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll try to get it posted soon. Sorry for the delay.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Niels</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-13357</link>
		<dc:creator>Niels</dc:creator>
		<pubDate>Thu, 15 Jan 2009 14:47:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-13357</guid>
		<description>Did you ever decide to publish this?  It sounds like just the thing for a little project of mine where I have to serialize certain member variable of a large number of classes to a database.

If you&#039;ve published it, I&#039;d be very interested in looking at it and providing feedback and improvements.</description>
		<content:encoded><![CDATA[<p>Did you ever decide to publish this?  It sounds like just the thing for a little project of mine where I have to serialize certain member variable of a large number of classes to a database.</p>
<p>If you&#8217;ve published it, I&#8217;d be very interested in looking at it and providing feedback and improvements.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Toone</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-12922</link>
		<dc:creator>Alex Toone</dc:creator>
		<pubDate>Wed, 17 Dec 2008 07:29:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-12922</guid>
		<description>This sounds like a very nice system avi. I have a (sort of) related Type custom allocation/management system for a project I&#039;ve been working on and this would be very interesting to me if you decide to GPL and share your code.

I&#039;d be interested in taking a shot at some of the improvements you mentioned too.

Give me an email avi if you are interested. What I&#039;d really like to do is wrap up a project like yours with a custom performance Type allocation and management system similar to the one I&#039;ve had to develop, GPL it and throw it up on sourceforge.</description>
		<content:encoded><![CDATA[<p>This sounds like a very nice system avi. I have a (sort of) related Type custom allocation/management system for a project I&#8217;ve been working on and this would be very interesting to me if you decide to GPL and share your code.</p>
<p>I&#8217;d be interested in taking a shot at some of the improvements you mentioned too.</p>
<p>Give me an email avi if you are interested. What I&#8217;d really like to do is wrap up a project like yours with a custom performance Type allocation and management system similar to the one I&#8217;ve had to develop, GPL it and throw it up on sourceforge.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-12075</link>
		<dc:creator>Brandon</dc:creator>
		<pubDate>Wed, 05 Nov 2008 22:44:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-12075</guid>
		<description>I came across this article via a Google search. I&#039;m a student working on a semester long project with the goal of implementing something similar to WinFS. I was wondering if there was any way I could get a copy of the code, or even a more technical description of how you implemented this. It&#039;s something I&#039;ve been trying to accomplish for almost a month now, but I&#039;m not a very experienced C++ programmer (I only recently decided to make the transition from C to C++). I don&#039;t intend on using your code (part of the project is that I must implement anything non-trivial on my own), I just need more than the description given to be able to &quot;get it&quot; and figure out how to implement my own system. Thanks.</description>
		<content:encoded><![CDATA[<p>I came across this article via a Google search. I&#8217;m a student working on a semester long project with the goal of implementing something similar to WinFS. I was wondering if there was any way I could get a copy of the code, or even a more technical description of how you implemented this. It&#8217;s something I&#8217;ve been trying to accomplish for almost a month now, but I&#8217;m not a very experienced C++ programmer (I only recently decided to make the transition from C to C++). I don&#8217;t intend on using your code (part of the project is that I must implement anything non-trivial on my own), I just need more than the description given to be able to &#8220;get it&#8221; and figure out how to implement my own system. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-4952</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Wed, 10 Oct 2007 06:03:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-4952</guid>
		<description>BTW, my C++ got all mangled in the reply.

It was supposed to say

Attrib ANGLE float ANGLE bar;

(Similarly, template angle brackets are missing everywhere in the post)

also, in the constructor, I meant to mention that the code initializing the hash table is hidden in a boring

INITREFLECT(bar);

macro but I manually expanded it for explanation..</description>
		<content:encoded><![CDATA[<p>BTW, my C++ got all mangled in the reply.</p>
<p>It was supposed to say</p>
<p>Attrib ANGLE float ANGLE bar;</p>
<p>(Similarly, template angle brackets are missing everywhere in the post)</p>
<p>also, in the constructor, I meant to mention that the code initializing the hash table is hidden in a boring</p>
<p>INITREFLECT(bar);</p>
<p>macro but I manually expanded it for explanation..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://www.realityprime.com/articles/the-audience/comment-page-1#comment-4951</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Wed, 10 Oct 2007 05:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.realityprime.com/articles/the-audience#comment-4951</guid>
		<description>I needed something similar, and wound up with something along the lines of:

class Foo
{
   REFLECT   // hide hash table
public:
   Foo();
   Attrib bar;
};

Foo::Foo()
{
  attribs[bar.Name()] = &bar;
}

where attribs is a hash table hiding inside the reflectable class.

I ended up needing to wrap the attribute in a template in order to be able to control access (so that if something external to the class modified the variable, the change wouldn&#039;t be unnoticed).

I did a similar thing as you for type identification, and compare pointers to strings containing a typename.

Coupled with a bit of partial specialization

    template 
    std::string ConvertValueToString(const T&amp;);
    template 
    T StringAsValue(const std::string&amp;);

I got nice automatic reflection (and script language bindings) due to the attribs map sitting in every serialized class.

The thing I don&#039;t like about my system is that it has a portion that must be dynamically intialized. The thing I do like about it is that since the attributes themselves are templated, I&#039;ve been able to swap in a lot of different algorithms and approaches to reflection without modifying the code that uses the reflection at all.

Thanks for a though provoking post.</description>
		<content:encoded><![CDATA[<p>I needed something similar, and wound up with something along the lines of:</p>
<p>class Foo<br />
{<br />
   REFLECT   // hide hash table<br />
public:<br />
   Foo();<br />
   Attrib bar;<br />
};</p>
<p>Foo::Foo()<br />
{<br />
  attribs[<a href="http://bar.Name" title="http://bar.Name" target="_blank">bar.Name</a>()] = &bar;<br />
}</p>
<p>where attribs is a hash table hiding inside the reflectable class.</p>
<p>I ended up needing to wrap the attribute in a template in order to be able to control access (so that if something external to the class modified the variable, the change wouldn&#8217;t be unnoticed).</p>
<p>I did a similar thing as you for type identification, and compare pointers to strings containing a typename.</p>
<p>Coupled with a bit of partial specialization</p>
<p>    template<br />
    std::string ConvertValueToString(const T&amp;);<br />
    template<br />
    T StringAsValue(const std::string&amp;);</p>
<p>I got nice automatic reflection (and script language bindings) due to the attribs map sitting in every serialized class.</p>
<p>The thing I don&#8217;t like about my system is that it has a portion that must be dynamically intialized. The thing I do like about it is that since the attributes themselves are templated, I&#8217;ve been able to swap in a lot of different algorithms and approaches to reflection without modifying the code that uses the reflection at all.</p>
<p>Thanks for a though provoking post.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
