カスタム名前空間でクラス Integer を宣言しました。
namespace MyNameSpace
{
class Integer {};
}
そして、私は次のような方法でそれを使用しています:
void someMethod()
{
using namespace MyNameSpace;
SomeClass x(Integer("some text", 4));
}
これは与える
10> error C2872: 'Integer' : ambiguous symbol
10> could be 'g:\lib\boost\boost_1_47_0\boost/concept_check.hpp(66) : boost::Integer'
10> or '[my file] : MyNameSpace::Integer'
全文検索で「namespace boost」と「using boost」のコード ベースを検索しましたが、「using namespace boost;」のような行は見つかりませんでした。これは、次のテストによってサポートされています。
void someMethod()
{
shared_ptr<int> x;
using namespace MyNameSpace;
//SomeClass x(Integer("some text", 4));
}
与える
error C2065: 'shared_ptr' : undeclared identifier
一方
void someMethod()
{
boost::shared_ptr<int> x;
using namespace MyNameSpace;
//SomeClass x(Integer("some text", 4));
}
コンパイルします。
「あいまいなシンボル」エラーが発生する可能性がある他の理由はありますか??