Library users have an easy life with C++. Library designers have a harder
life. cf. FORTRAN where users have a hard time too.
Library users are much better protected against their misuse than in
Library users do not need to care about implementation details.
Library users typically benefit from a simpler and more natural interface
to the services provided by a library assuming the library designer has done
a good job.
Library designers have a huge responsibility to provide simple yet flexible
libraries which are genuinely useful and still remain efficient. Who will use
a library that does not satisfy these criteria?
The difficulty for the library writer is in the design not in the
implementation. C++ doesn't tell the library designer what to do; it simply
provides the tools to do it.