Earlier quoted context omitted.
This also significantly hurts readability, and I would hate the person who writes code like this unless you really need binary compatibility (if you do, it is a sign that you should improve your release schedule). Mostly, you just want to decouple the interface of the class from the implementation details. In that case do just that - define an interface and implement it elsewhere. You can always just static link all…
> You can always just static link all binaries. Not always you can't. There are many reasons to use dynamically linked libraries all of which are applicable whether you're using PIMPL or not.
What's an example of this (assuming you don't care about binary size)?