
David Abrahams wrote:
I have always thought that concrete implementations of portable libraries should supply users a way to get at the OS-specific data so they can use platform-specific facilities on them if neccessary.
I've been thinking about this, but this continues to bother me. Is this essentially different from removing the private access specifier from the class definition? It seems to me that, by doing this, we are throwing away so many correctness guarantees. To me, this seems sort of like taking shared_ptr, and making it implicitly convertable to a pointer. I think that promoting this sort of behavior will cause programs that have a much lower probability of being correct. I'd be a lot more happy about a system that forced code that wanted to access these internals needed for extension to do something special, besides just calling a semi-secret method. For example, derivation does this for me--but there might be other ways, that aren't apparent to me at the moment. Aaron W. LaFramboise