首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么这个名称有歧义?

为什么这个名称有歧义?
EN

Stack Overflow用户
提问于 2013-03-30 19:16:04
回答 1查看 695关注 0票数 1

我最近决定在我的项目中包含JavaScript V8引擎。编译并链接到它之后,我想运行Getting Started指南中的示例。

它通常可以工作,但是由于某些原因,当我没有在每个类名前面指定v8名称空间时,就会出现名称空间冲突。例如,Visual Studio2012告诉我,名称Context可能会有歧义。但我不明白为什么。

我在这个文件中唯一包含的名称空间是stdv8。它是一个头文件,在你问之前,它应该是这样的,因为它声称是一个只有头的库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#pragma once

#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <functional> 
#include <memory>
#include <typeindex>
#include <iostream>
#include <fstream>
#include <V8/v8.h>

namespace library_name
{
    using namespace std;
    using namespace v8;

    // here comes the example code and more...
}

为了找出名称为Context的符号也可能被定义在哪里,我在Visual Studio中使用了Find Definition命令,可以在上下文菜单中找到该命令。这是结果列表。

例如,它列出了我在项目中使用但不在标题中使用的sf::Context。在名为Windows Kits的目录中的文件中,还有一些隐蔽的名称空间中的定义。我既不知道它们是用来做什么的,也不是故意把它们包括进来的。除了上面所示的标准库和JavaScript V8之外,我不包含其他的头文件。

为什么来自不同命名空间的Context会相互冲突?如何修复此冲突以使用v8名称空间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-30 19:23:11

尝试实际编译代码。编译器应该列出实际冲突的符号,可能包括它们实际定义的位置。您需要删除其中一项使用,或者完全限定标识符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15722440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文