�@aaaaaaaaa.cpp
ttp://codepad.org/8b4slwrj
こうすると、VC++では
 error C3767: 'foo': 候補の関数はアクセス可能ではありません。
 'aaaaaaaaa.cpp(26)' の friend 関数である可能性があります : 'foo' [引数依存の
 照合を使って検出される可能性があります]
というエラーになります。
ところが
namespace MyNS
を外してグローバルスコープにすると
ttp://codepad.org/nBmNHA3H
このコードのようになりますが、VC++で通ります。
なお、g++ではどちらも通ります。

�Aまた、//問題の箇所2の行をコメントアウトした
C++ code - 50 lines - codepad
ttp://codepad.org/J3kjckz1
はg++, VCどちらも通らなくなります。
(インスタンス化されていないため?)

�@�Aの問題の原因としては
//問題の箇所1
あたりのやりかたがまずいのかと思っているのですが、
正解のコーディングをご教示いただけますでしょうか?

よろしくお願いいたします。