Book a Demo

Author Topic: Multiple inheritance with templates bug  (Read 4654 times)

MrMark

  • EA Novice
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Multiple inheritance with templates bug
« on: April 08, 2008, 12:32:25 am »
I'm Trialling EA on an existing code base, and ran into a rather annoying bug: If I reverse engineer my code base, then synchronize (with no changes being made) the generated class definitions are wrong on classes with multiple inheritance when not all classes are template classes. IE

class myClass : public parentA, parentB, parentC<MyTemplate>
{
...
};


Or to use a sample from my code:

class ManagerInputHandler : public OIS::KeyListener, public OIS::MouseListener, public Manager<ManagerInputHandler>

becomes

class ManagerInputHandler : public Manager<ManagerInputHandler>, public OIS::KeyListener<ManagerInputHandler>, public OIS::MouseListener<ManagerInputHandler>

OIS::KeyListener and OIS::MouseListener are getting wrongly used as templates.

or to use another example

class ManagerLog : public Manager<ManagerLog>, public Ogre::LogListener

becomes

class ManagerLog : public Manager<ManagerLog>, public Ogre::LogListener<ManagerLog>

Ogre::LogListener this time is getting wrongly as a template.


The parent class EA is having trouble getting the inheritance right are classes from external libraries that as you can see live in seperate namesapces. I've tried importing the header files for those classes and their dependencies into EA, but to no avail.

I could write a fairly simple find and replace macro since EA generates the same incorrect class definition each time, but that just very hacky :(


Am I doing something wrong, or should I go looking for another uml solution ?