On Apr 28, 6:00 pm, "Hak...@[EMAIL PROTECTED]
" <Hak...@[EMAIL PROTECTED]
> wrote:
> I have two issues.
>
> 1) Given the objects item1 and item2, derived from type T, I need to
> find out if item2 is derived from item1.
>
> I solved this by learning (by accident) of the typeof() keyword...that
> is apparently not standard. Nevertheless, it allowed me to write the
> following line of code that presumably works...if only it would
> compile.
>
> > if( dynamic_cast< typeof( item1 ) >( item2 ) );
>
> Interestingly enough,
>
> > cout << dynamic_cast< typeof( item1 ) >( item2 );
>
> does compile. Neither item1 or 2 is constant, in case that would
> explain this.
>
> My second issue is that I heard MS compilers do not typeof, so I'd
> either have to steal from Boost or come up with a completely different
> way to test inheritance so it would compile on my target machine
>
> So, my goals for posting here are:
> -- Find out how to make what I have compile, or find an alternative.
> -- Learn what I can do to make my source compilable on MS compilers--
> or if it would as it is (after I get it working).
> -- Gain a deeper understanding for the material.
>
> Thanks in advance.
>
> PS: I'm using GNU. to compile this.
>
Check out Alexandrescu's template techniques in "Modern C++ Design"
2.7 Detecting Convertibility and Inheritance at Compile Time.
--
Nikolai
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|