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++.