Is this documented somewhere? On 30 Jan 2014, at 22:26, Jens Alfke <j...@mooseyard.com> wrote:
> > On Jan 30, 2014, at 4:32 AM, Jean-Daniel Dupas <devli...@shadowlab.org> wrote: > >> It is barely possible to create a stable ABI in C++. This language suffers >> all possible form of fragile base class problem: >> Add a new ivar, all subclasses and stack allocated objects are broken. >> Add a new virtual method, you break all virtual subclasses. > > Exactly. Also, the use of templates or inline methods in library classes will > cause library code to get built into the calling app at compile time. After > that, the library has to be very careful not to break compatibility with such > code to avoid breaking the app. A typical obvious example is changing the > implementation of an inline method; newly compiled apps will get the new > behavior but existing apps will keep the old behavior since the inlined code > is in the app not the library. That's bad news if the old inline method > accesses private state of the old version of the class that no longer exists > in the same form in the new version. > > It is possible to create binary-compatible C++ APIs but you have to be very, > very careful — generally there are a lot of rules about the use of inlines > and templates; you have to add placeholder data members and virtual methods > to classes to reserve room for future expansion, etc. > > —Jens > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/rui.pacheco%40gmail.com > > This email sent to rui.pach...@gmail.com
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com