Hi,
I'm currently evaluating Enterprise Architect to see if it fits my needs of C++ round-trip UMLing. So far, it's the best software package I've seen. Yet, there are some problems that I have posted to the trial user bug report but I didn't get any feedback. Perhaps you folks in this forum can "help" me or just confirm my observations.
Problem 1:
I have a typedef of this form:
typedef unsigned long long Index;
If I syncronize the model with the code (or import the source from a dir on an initial EA project setup), the typedef will not show up.
If I generate the code, the typedef disappears. The "Index" is still used as a function return value, but any code that uses the "Index" will be deleted.
The initial code:
inline Index getFloormapIndex(int _x, int _y) {
return Index( (static_cast<Index>(_x) & 0xffffffff) << 32 | (static_cast<Index>(_y) & 0xffffffff) );
};
The code after "Generate code":
inline Index getFloormapIndex(int _x, int _y) {
return NULL;
};
Now, some strange stuff: If I readd the "typedef unsigned long long Index;" and I change the "unsigned long long" to "int" ("typedef int Index;"), a "sync model with code" will show the typedef. I rechange the "int" to "unsigned long long", "sync model with code" then "generate code" again, I will have 2 (!) typedefs. One with int and one with unsigned long long. :-?
2nd problem:
I have an attribute "int m_a;", I delete it within the UML then I "generate code": The "int m_a;" changes to "int *m_a;". That pointer is not displayed in the class UML. I do an "sync model with code", the pointer appears. I manually remove the pointer from my header and do a "sync model with code" -> the pointer disappears from the class UML.
Now the strange thing: If I "generate code", the pointer shows up again ?!?

Thanks for your help,
Stefan