Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
It just means that you should be careful with using directives because in this case it would break your max() function if you had defined one and included <algorithm>. This is a simple case but you never know what you might break. You'd need to know the entire library to be sure you didn't break it but you can't know if your code would break (i.e. name collision) in the future.
Wow how could I not think about Composite ! Thanks ! Indeed it might be overengineering but I think it might be ok in this case since this is for a software engineering class. Also yes there is the possibility of having groups of groups (not in the case of users but in the case of components).