コードで名前空間を使用しようとしているので、次のようなヘッダー ファイルがあります。
#include <string>
namespace AppNamespace
{
class A
{
std::string name;
};
}
これをコンパイルしようとすると、「'string' は AppNamespace::std のメンバーではありません」と表示されます。文字列の前を削除するstd::
か、または と書く::std::string name
と、正常にコンパイルされます。
もちろん、これは単純化された例です。私は多くのヘッダー ファイルを持っていますが、すべてがこの動作を示すわけではありません。何が原因なのかはわかりませんが、コンパイラは常にグローバル名前空間も試行すると考えていました。
これが問題になる場合、私は現在 Visual Studio 2012 を使用しています。