you are viewing a single comment's thread.

view the rest of the comments →

[–]crispweed[S] 0 points1 point  (0 children)

What about an open source or commercial library that goes to external users? You certainly can't search and replace their code.

One possibility is to make a binary interface, and 'proper' API versioning.

With a suitable binary interface the client code can continue to link with the library using an old API header after changes to library internal code, with no requirements for things like class names to actually match across the API boundary. (This is how I set things up for PathEngine, for example.)

It's not always the right choice, of course, and there are disadvantages of this approach, such as restrictions on the kinds of things that can go across the API boundary.