同じスコープ(C++)や名前探索の文脈で、同じ名前が曖昧になったり再定義として不適格になったりする状態・エラー。 名前空間(C++)やスコープを分けることで避けられることがある。

例えば、同じスコープで int value; int value; のように同じ名前を再定義すると衝突する。 一方で、スコープや名前空間(C++)が異なれば、同じ名前でも別の名前として扱える。