Re:C++ Patterns: The Badge
by QuadrupleA on Wednesday June 12, 2019 @03:35AM
(#20162524)
Admittedly my use case is generally projects that are under my control.
But in the case of say an open source library, how likely are clients going to update their code with each new release of the library? Typical case is to do it from time to time, especially with compiled code / shared libs, and expect a few incompatibilities to sort out and fix when you do.
In a fast evolving large team project, seems it depends on how well the boundaries of the subsystems are worked out. Misusing supposed-to-be-private members is one minor possibility amidst many challenges.
The implicit contract is that anybody who uses m_ "intended to be private" members is responsible for fixing breakage.
It also doesn't work very well with code completion - implementation methods get mixed up with surface API - and usability by third parties suffers.
If you're on a team of one, and you own the project for its whole lifetime, then you're fine.