问题标签 [name-conflict]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
245 浏览

c++ - C++/名称冲突:如何排除先前定义的函数

我想为我自己定义的新数据类型 Array 编写 log2() 函数。所以它看起来像这样

尽管有 sin、cos 等其他函数,但这个(log2)并未在 std 命名空间下声明。所以即使使用以下

编译器无法解析内部 log2 应该是内置的 c 函数。为简化代码,我坚持使用相同的名称 (log2)。

这是错误信息

错误:从“double”类型的表达式中对“Array&”类型的引用进行无效初始化

已解决:当我切换到 -std::C++ 11 时它起作用了。

0 投票
1 回答
50 浏览

json - Grails Json Views“模型”键与模型关键字冲突

我正在为Grails应用程序使用rest-api配置文件,并在我的一个 json 视图 (_event.gson) 中有以下内容:

简而言之,一个产品属于一个事件。默认情况下,我会以 json 形式获取带有 id 的产品密钥。我想为此添加更多字段。

所以我使用了 excludes,这样我就可以定义将出现在详细说明产品的嵌入式 json 文档下的字段。我的目标是将以下内容作为json:

最后一个字段——模型——没有出现。似乎它与我的 _event.gson 文件的第一行中使用的模型关键字混淆了。有没有办法解决?我尝试在“模型”中添加引号,但它仍然不起作用。

0 投票
0 回答
63 浏览

c - 不同版本gcc中的不同符号表导致错误链接

我正在尝试编译一段将多个源文件与共享库链接的代码。这是为了避免与源代码和共享库中名为Log的函数发生名称冲突。

我的源代码中的签名是Log(int, char *, char *, ...),共享库中的签名是Log(int, int, char *, ...))

需要为不同的目标构建代码。使用 gcc-5.4.0 (Ubuntu 16.04) 构建时,没有冲突,共享库正确调用共享库中的 Log 函数。但是,在为 armhf (BeagleBoneBlack) 构建 gcc-4.9.2 时,共享库在我的源代码中调用了不正确的Log函数。

具体来说,应用到使用 gcc-4.9.2 生成的可执行文件的nm命令的输出显示了动态符号表中的第一个条目,如下所示:

使用 gcc-5.4.0 编译时,不会出现 Log 的此条目。

在生成 .so 文件时,我尝试使用objcopy替换Log符号名称,但这不起作用。

Makefile 中是否有一些设置或标志需要添加,以便任何版本的 gcc 都不应该将Log函数添加到我的最终可执行文件的动态符号中?还是我在这里缺少其他东西?

重现 Makefile 设置:

0 投票
0 回答
118 浏览

c++ - Call to base member function template ambiguity in C++

I'm trying to implement a DependencyInjectable behavior, and classes that derive from this behavior are able to be injected with the appropriate dependencies upon instantiation.

Below I've tried to extract and condense a sample of code from a much larger project to illustrate the problem I am having. It's a little lengthy, and I apologize for that.

In particular, I use std::tuple to store dependencies within the DependencyInjectable class, and I am trying to use enable_if to disable the getDependency() function when the tuple does not contain the requested type. In main, I make a call to an instance of Derived's getDependency() function and I specify "DependencyOfDerived *". This works as long as I specify

in the Derived class, but I would have thought that the enable_if would have disabled the getDependency() function in the base for the "DependencyOfDerived *" template parameter since the Base tuple does not contain that type. What am I missing here?

If I comment the using statements, this is the following output I get from gcc:

In function 'int main(int, char**)': 116:42: error: request for member 'getDependency' is ambiguous 45:31: note: candidates are: template typename std::enable_if >::value, T>::type DependencyInjectable::getDependency() const [with T = T; Dependencies = {DependencyOfDerived*}] 45:31: note: template typename std::enable_if >::value, T>::type DependencyInjectable::getDependency() const [with T = T; Dependencies = {DependencyOfBase*}] 116:76: error: expected primary-expression before '*' token 116:77: error: expected primary-expression before '>' token 116:79: error: expected primary-expression before ')' token

0 投票
1 回答
736 浏览

c++ - 使用同一库的多个版本时的符号解析

我有一个作为第三方应用程序(app.exe)的一部分运行的 solaris 共享对象(common.so 文件)。我无权访问应用程序的源代码。为此,我需要添加发布 http 请求的功能。我的计划是将 libcurl 与 openssl 一起使用。棘手的部分是 app.exe 已经依赖于旧版本的 curl (7.14),它不支持 tls v1.2 的 ssl。

我下载了源代码并构建了 curl (7.55.1) 和 openssl .a 文件。我还能够构建 common.so 并静态依赖这些存档文件。ldd 不显示对 curl 或 ssl .so 文件的依赖,也不会报告任何“未找到符号”错误。

有了这个结果,我希望当 so 作为应用程序的一部分运行时调用我的 curl 版本,但它没有。相反 curl_version() 显示旧版本,我收到错误未知 ssl 协议错误

我正在使用 solaris studio 编译器。该应用程序不直接依赖于 curl 库,而是依赖于一个不同的 .so 文件,该文件导出与 curl 同名的符号。我从 nm 中意识到,我假设这个 .so 文件也静态链接 curl。

0 投票
2 回答
1962 浏览

sql - 如何在 ON CONFLICT 子句中消除 plpgsql 变量名的歧义?

鉴于此表:

我需要编写一个 plpgsql 函数,其变量名称与主键名称冲突,我必须在on conflict子句中使用它:

这会编译,但随后会引发模棱两可的列引用:

我尝试将完整的列名指定为on conflict (test.name)哪个不编译,或者((test.name))哪个编译:

但它也失败了:

有解决办法吗?


编辑:我找到了解决方法:

test_pkey表名加在哪里_pkey。我不知道这有多可靠。我仍然想指定列名。

0 投票
2 回答
436 浏览

matlab - 如何解决 MATLAB 中的名称冲突?

我在 MATLAB 中创建了一个名为“堆栈”的 GUI。它有一个.m与之关联的文件。此 GUI 由同一文件夹中的另一个 GUI 多次调用。

现在我发现“ stack ”是 MATLAB 中的一个内置函数,我需要将它用于同一工作目录中的其他内容。所有对堆栈函数的调用都以某种方式通过调用stack.m脚本来调用 GUI。

我不想重命名它,因为它在很多地方都使用过。

有没有办法使用内置函数而不需要重命名?有什么方法可以分别引用函数和脚本?

0 投票
1 回答
32 浏览

typeclass - 导入 `Cubical.Data.Nat` 会破坏 `isOfHLevel→isOfHLevelDep`

以下小型 Agda 程序类型检查:

但是,如果我还添加import Cubical.Data.Nat(我什至不需要打开它!),这将失败:

如果我用一个孔替换参数2isOfHLevel→isOfHLevelDep询问 Agda2在该上下文中的类型是什么,它会显示:

这个问题是由2某种重载文字引起的吗?如何指定要2在 type 处使用HLevel

编辑添加:如果我不使用文字,而是使用 write suc (suc zero),那么它可以工作;但是,我还是想在2那里使用文字。

0 投票
1 回答
109 浏览

c# - 用户定义的类名与内置类名冲突 - C#

我有以下代码,我Stack在自己的用户定义类中使用内置的 C#Stack1类。一切都适用于这个用户定义的命名法。但是,一旦我更改了用户定义Stack1类的所有引用并将其作为Stack类调用 - 编译器就会感到困惑,并且Stack我在其中使用的 C# 内置类user defined Stack class不再对应于内置Systems.Collections.Stack类。但是,回退到用户定义的StackHavingPopPushAndMinO1_2.Stack类。你知道为什么会这样吗,有什么办法可以让我的用户定义的 Stack 类名保持不变,Stack并且仍然使用其中的内置Systems.Collections.Stack类吗?

请参阅:我已经通过使用System.Collections.Generic.Stack<int>我的用户定义Stack类中的类解决了这个问题。但我的意图是我不想更改我的用户定义Stack类的名称 - 并且仍然使用其中的内置Systems.Collection.Stack类。

请参阅:我还创建了一个别名System.Collections并将其附加到Stack我正在使用的内置类中。但我只是想知道是否有其他方法可以使用我的用户定义Stack类,其中包含内置Systems.Collections.Stack类。

以下是代码:

用户定义的类一切正常Stack1。但是,一旦我将名称更改为Stack1to Stack,编译器就会感到困惑,并且由于名称冲突而出现错误。对此的任何启示都将非常有帮助。为什么 C# 编译器不知道用户定义Stack类和内置Stack类之间的区别?

0 投票
1 回答
59 浏览

c++ - C++:如何从我自己的函数中的头文件调用一个函数(比如说 funA()),它的名字也是 funA()?

我想reverse(BidirectionalIterator first, BidirectionalIterator last)从函数<algorithm>内部的头文件中调用一个函数,其名称也是reverse(int).

代码:

我认为它会像函数重载一样根据传递的参数自动调用适当的函数。但是,事实并非如此。

我试过了:

但它给出了很多错误。