April 24, 2007 Fast Template Visitor Library | ||||
---|---|---|---|---|
| ||||
Attachments: | Hi, I've been working on a `Visitor' generation library. The main advantages being aimed for are: 1) N number of arguments and return type ( templatized ) 2) Prevent coupling between classes 3) Easy to add new classes 4) Not having to declare a Visitor interface with visit methods 5) Efficient dispatch: equivalent to a virtual function call ( normally a visitor requires 2 virt calls; acyclic visitor requires a dynamic cast ) 6) Add new visit methods at runtime One drawback includes having to register each visit method. But this is also allows runtime flexibility. A visitor can be created as a singleton if needed. The code has been developed using VC++ 8.0. The implementation techniques include assigning tags to classes on the fly, building virtual table internally, creating thunk functions, a cast policy etc. Cvisitor.h contains the library. test1.cpp contains an example for a Shape heirarchy. Please feel free to discuss the code. Comments and suggestions are welcome. Thanks, Anand. |
April 24, 2007 Re: Fast Template Visitor Library | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anand Krishnamoorthi | I'll test it in Digital Mars C++, G++ soon and post the results. Anand. |
Copyright © 1999-2021 by the D Language Foundation