そもそもstd名前空間(::stdじゃなくて)の拡張は未定義じゃね?
(17.6.4.2.1 Namespace std)

何のためにstd名前空間を定義するの?