> Why? A class should not be constricting its users, unless it's necessary.
A user should never know the size of an object, unless it's necessary. C++ just does not allow me to do this in a sane way, so it's already disqualified for long-term library projects.
> If your class should be used ONLY with refcounting,
> then intrusive_ptr is a better solution
Not part of C++.
> C++ is just fine with refcounting, just learn to use C++ correctly.
If you like std::shared_ptr<MyObject> everywhere, then yes, it works. But it looks like an ugly peace of shit when compared to a reference counting C library.
> ABI stability is about on the same level as in C.
> Just use incomplete classes, they work EXACTLY like in C.
Call a method on an incomplete class.