سلام.
namespace برای جایگذین شدن کلمه کلیدی static ساخته شدن. اینطور گفته شده که کلمه ی کلیدی static توی ++C منسوخ شده ولی خوب در حقیقت اینطور نیست. مثلا اگر شما برای مخفی کردن یک تابع یا شی از دید دیگر فایل ها اون رو بصورت static تعریف کنید با اینکه اون رو توی یک namespace بی نام تعریف کنید تفاوتی نداره. تنها مزیتی که namespace های بی نام نسبت به static دارن اینه که شما میتونید Data Type های local هم تعریف کنید که فقط توی همون فایل قابل دسترسی و استفاده هست .