On 8/31/2015 9:36 PM, Gavin Lambert wrote:
On 1/09/2015 11:58, Thomas Heller wrote:
Am 01.09.2015 1:33 vorm. schrieb "Gavin Lambert"
: On 1/09/2015 02:57, Thomas Heller wrote:
You don't appear to understand well how ABI stable C++ is designed. It requires imposing costs on everybody. Look at the PIMPL idiom.
The PIMPL idiom has absolutely *nothing* to do with ABI stability.
This is incorrect.
PIMPL is one essential tool in maintaining public ABI stability, as it allows the size of the private members of a type to become irrelevant to the ABI size of the public type, and therefore permitted to vary without breaking ABI compatibility.
Just to be on the safe side here, we are talking about ABI compatibility between different versions of your library, right? Not between versions of your library linked against different runtimes? If yes, I stand corrected.
I believe that is what he was referring to, yes.
ABI compatibility != ABI stability When different versions of the library ship different symbols, potentially via the use of inline namespaces, PIMPLes would not be needed. Regards, -- Agustín K-ballo Bergé.- http://talesofcpp.fusionfenix.com