[antlr-interest] static casts in heterogeneous AST parser

Braden McDaniel braden at endoframe.com
Tue Oct 9 01:33:42 PDT 2001


On Mon, 2001-10-08 at 15:48, Ruslan Zasukhin wrote:
> on 10/8/01 19:06, John Lambert at johnl at jbase.com wrote:
> 
> > I have problems compiling a parser using heterogeneous ASTs on HPUX.
> > 
> > It is objecting to all  static_cast operations between ASTRefcount<AST>  and
> > ASTRefcount< derivedAST>
> > 
> > HP support claim they are correct and that it should be a reinterpret_cast. I
> > disagree, this works fine on lots of other platforms and  a quick test of
> > reinterpret_cast on other platforms produces compilation errors.
> > 
> > Has anyone else encountered this ?
> 
> If I am not mistake (and I think I am not) rule is next:
>     
>     if a class has at least one virtual function
>     then e must use dynamic_cast<>, otherwise static_cast<>

No, the rule you're thinking of is that in order to be able to use
dynamic_cast, the class must have at least one virtual function.

A dynamic_cast is a run-time cast. It is useful when the complete type
of an object cannot be known at compile-time (or if certain properties
of the complete type cannot be resolved by the compiler). Of course, a
static_cast is a cast that is performed at compile time. Most common
casting needs are met by static_cast.

> This is annoying frankly saying...
> Let I have class A with no virtual functions and use it in a lots of places.
> Later if I will need virtual function in this class, all static_cast for it
> must be replaced on dynamic_cast<>.

This is not the case.

-- 
Braden McDaniel                           e-mail: <braden at endoframe.com>
<http://endoframe.com>                    Jabber: <braden at jabber.org>


 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 



More information about the antlr-interest mailing list