Borland BDS2006 (and possibly newer versions)
has some problems with the default constructor / destructor for class and struct inside its C ++ engine.
- see bds 2006 C hidden memory manager conflicts for more information.
Adding a custom (even empty) constructor / destructor solves many problems, even yours. Try:
struct S { S(){}; S(S& a){}; ~S(){}; S* operator = (const S *a){};
I tried this in BDS2006 and it looks like it works (it's hard to say without anything inside a struct ), but you can compile and run at least ...
I first discovered this behavior in BDS2006 ... actually did not try BCB6 as it was confused from the very beginning and fired it after a few days (I think the worst BCB ever even exceeded BCB3,4 ) in BCB5 was everything ok (before BDS2006 was my favorite IDE) with this, so they should change the C ++ engine (do not confuse with runtime libs !!!).
Adds even an empty destructor constructor. If you get dynamic allocations, you need to handle rough ones. If you have a nested class / structure, be sure to also add them to them.
Spektre
source share