でコンパイルしないでください。(これはすべて私自身のクラスと関数名が置換されているコードを減少さコードは、Visual Studio 2010でコンパイルしますが、次のソースコードは、Visual Studio 2010で正しくコンパイルすべて
namespace NS
{
class X
{
};
X Y(X str);
}
void myFun()
{
NS::X x;
Y(x);
}
X、Y、...)
Y(x)
は、NS::Y(x)
であるため、コンパイルに失敗することが予想されます。
このソースコードはここに含まれ、他のファイルは、他のコマンドラインオプションはありません、次のコマンド
cl /c file.cpp
でコンパイルされています。
このファイルはなぜコンパイルされますか? VS2010のバグ?あるいは私(そして私の他の3人の同僚)が見落としたことは何ですか?
これをg ++で試してみて、NS :: Y(NS :: X) 'に未定義の参照を持っていたので、VSのバグかもしれません。 – WeaselFox
http://ideone.com/WzC6V –
@WeaselFox :完全に無関係です。 'NS :: Y'が定義されていないため、あなたのエラーは*リンカエラーです*。これは典型的なものであり、完全なセットアップで別のファイルに定義されている可能性があります。 @MatthieuM。 –