Classes with static methods
- You can have class inside another class, you can't have namespace inside class (because it probably does not make any sense).
- They work with very ancient compilers.
Namespaces
- you can create namespace aliases
namespace io = boost::iostreams; Well, you can typedef classes, so this is moot point.
you can import symbols to another namespaces.
namespace mystuff { using namespace boost; }
you can import selected symbols.
using std::string;
they can span over several files (very important advantage)
inline namespaces (C++11)
Bottom line: namespaces are way to go in C++.
new.