gpt4 book ai didi

c++ - 歧义符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:17 25 4
gpt4 key购买 nike

我在自定义命名空间中声明了一个 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));
}

编译。

是否还有其他原因导致“模糊符号”错误发生?

最佳答案

编译器只是防止你混淆这些类。即使您没有使用命名空间“boost”。

关于c++ - 歧义符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12140669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com