Originally Posted by
anon
For example, if you look at GCC implementation of list, you might find that the node struct(!) is only "hidden" within a nested namespace. There is no reason to go out of your way to hide it from the user: the container never exposes any nodes to the user, and even though you could create a node instance of your own, it wouldn't have much use for you. Just make it so it doesn't get in the way.
As for the second question, it might be hard to tell without any real code and compiler message.