From: Warren Young Date: March 15 2005 8:57pm Subject: Re: libmysqlpp.so minor version numbers? List-Archive: http://lists.mysql.com/plusplus/4151 Message-Id: <42374C55.5090809@etr-usa.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Chris Frey wrote: > In another thread, Warren wrote: > >>It's unfortunate that the ABI breaks so easily with C++. With C, >>there's no problem just adding new functions. But when you add methods >>to a C++ class, it changes the instance size, so it's a different ABI. Wah. > > I don't think this is the case. Class member functions just take a > this pointer, just like C functions would take a pointer to a struct. You're right, of course. I had conflated this issue with member _variables_, because this topic came up when I wanted to add exception disabling to Connection. So while true, it doesn't actually help with the matter at hand. The other proposal for fixing this, which would involve deriving Connection from another class, should also break the ABI. So we're back to discussing a new library version in which we can batch these sort of changes.