> The obvious question is of course: Why not? Because of variations within C++, especially in regard to implementation of name mangling, default function attributes, implementation of classes, RTTI, etc. Anytime the standard changes, you have to change binary compatibility. Likewise, many new optimizations require binary differences. Since there hasn't until recently been a C++ binary standard, each compiler was free to implement the language however they wish, so if your first compiler compiles the function foo() as foo_returns_int() and another compiler compiles foo() as foo$intpp(), then applications compiled for one won't work for the other, because the function names would be different. In addition, to support RTTI, you need some method of determining types at runtime, which would require additional space in each class, which means that the library would be expecting an object of X size, when you send it an object of Y size. Exceptions are even nastier, because they _really_ slow down your code. Therefore, everyone is always trying to make that faster, each time breaking binary compatibility. Jon > > - Toralf > > > > -- > redhat-list mailing list > unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe > https://www.redhat.com/mailman/listinfo/redhat-list > -- redhat-list mailing list unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list