C++ มีไลบรารีมาตรฐานที่ประกอบด้วยฟังก์ชันทั่วไปที่คุณใช้ในการสร้างแอปพลิเคชัน เช่น คอนเทนเนอร์ (containers), อัลกอริทึม (algorithms) เป็นต้น หากชื่อที่ใช้โดยสิ่งเหล่านี้ถูกปล่อยให้อยู่ในขอบเขตกลาง (global scope) อย่างไรก็ตาม เช่น หากพวกเขากำหนดคลาส queue อย่างกลาง คุณจะไม่มีโอกาสใช้ชื่อเดียวกันอีกโดยไม่เกิดข้อขัดแย้ง (conflict) ดังนั้นพวกเขาจึงสร้าง namespace ชื่อ std เพื่อรวมสิ่งเหล่านี้ไว้
คำสั่ง using namespace หมายความว่า ในขอบเขตที่มันอยู่ ให้ทำให้ทุกอย่างภายใต้ namespace std ใช้งานได้โดยไม่ต้องขึ้นคำนำหน้า std:: ทุกครั้ง
แม้การปฏิบัตินี้จะยอมรับได้สำหรับโค้ดตัวอย่าง แตการดึง namespace std ทั้งหมดเข้าสู่ namespace กลาง (global namespace) ไม่ใช่เรื่องดี เพราะมันทำลายวัตถุประสงค์ของ namespace และอาจนำไปสู่การชนกันของชื่อ (name collisions) สถานการณ์นี้เรียกว่า namespace pollution (มลพิษของเนมสเปซ)