问题标签 [name-hiding]
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.
c++ - 结构声明被变量隐藏时的名称解析
让我们考虑以下演示程序。
正如所见,struct B
结构中成员的声明被类型A
为 的数据成员的声明所隐藏。B
int
所以在模板结构声明的函数定义中
T::B
不应该找到依赖的名称。
但是编译器gcc 8.3
成功编译程序并且程序输出
另一方面,编译器Visual C++ 2019不会编译程序并发出语法错误。
那么它是编译器gcc 8.3的错误吗?
第二个问题是,如果允许这种带有详细类型说明符的构造(带有未注释的关键字结构)是很自然的。
但是,两个编译器都认为该构造不正确。
确实不正确吗?
c++ - 为什么默认隐藏模板基类的公共成员类型?
为什么默认隐藏模板基类的公共成员类型?
c++ - c ++如果在一个类中将多个运算符定义为虚拟,孩子是否需要全部覆盖它们才能编译?
我有以下课程,
上面的代码片段给出了编译时错误,模棱两可的重载。但如果我把virtual void operator()(int a) {}
它作为一个正常的功能,它就可以工作,
这是否意味着在基类中有多个虚拟运算符的情况下,我需要覆盖所有这些?
gcc - 继承的可变参数模板中基本成员的名称隐藏
我有以下适用于 VS2017 的代码:
它以这种方式使用:
问题在于使用 Composite<Args...>::foo的行,因为它不在 c++ 标准中。这就是为什么它不适用于 gcc:Composite<Args...> 不是 Composite 的基类。
我不得不使用这条线,因为 Composite 隐藏了 A 的 foo。
我如何才能拉入单个打包参数的范围?
谢谢。
c++ - 函数参数中的 C++ 枚举关键字
enum
在函数参数中使用关键字有什么意义?没有它,它似乎做同样的事情。
两者有区别吗?