问题标签 [name-lookup]

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 投票
1 回答
6408 浏览

c++ - 如何使用 BOOST_STATIC_ASSERT

Question1 > 以下语句背后的语法是什么?我们什么时候应该使用它?如果是模板特化,为什么我们必须提供参数而不仅仅是

问题2 > 如果我们必须使用这种形式,我们是否必须在函数范围内采用这种语法?

问题3 > 如何更正 的定义accepts_values_between_1_and_10_alternative以使其适用BOOST_STATIC_ASSERT

谢谢

0 投票
1 回答
357 浏览

c++ - 本地类中友元函数的名称查找

编译如下:

导致错误:

错误:没有事先声明的本地类中的友元声明“void bar()”

为什么名称查找失败?我该如何解决?

0 投票
3 回答
518 浏览

c++ - 如何在模板化基类中命名嵌套模板?

在以下设置中,我怎样才能使我可以引用Bar派生类中的名称Derived<T>

我试过using Foo<T>::Bar;了,但这没有帮助。是否有任何类型的using声明可以使派生类知道嵌套基模板的名称,以便我可以保留简单的声明Bar<int> x

我知道我可以这么说typename Foo<T>::template Bar<int> x;,但我有很多这样的情况,我不想用这么多冗长不必要地给代码增加负担。我也有很多不同的“ ints”,所以typedef每个嵌套模板实例的一个也不可行。

另外,此时我不能使用 GCC 4.7 也不能使用 C++11,因此我想要一个没有模板别名的“传统”解决方案。

0 投票
2 回答
105 浏览

c++ - 这个名称在 VC++ 2010 非标准的依赖基类中查找吗?

下面的代码不能在 Ideone 或 Codepad 上编译,产生如下错误:

'X' 未在此范围内声明

但在 VC++ 2010 上确实如此:

它在哪里打印int和。我应该将代码更改为:charfloat

为了符合标准?

0 投票
3 回答
686 浏览

c++ - 在依赖派生类模板中使用 this 指针

在C++ Templates - The Complete Guide一书的示例pointers/countingptr.hpp中,派生依赖项的成员使用指针来引用。为什么在这个例子中是必要的?class CountingPtrthisthis

我知道this需要指针才能命名依赖基类模板的成员。当然this,依赖派生类模板中也不需要指针吗?

0 投票
1 回答
121 浏览

c++ - 依赖于参数的名称查找:添加额外的名称空间以查看

我想利用 ADL 规则来检查额外命名空间中的函数:

假设我们有一个class X.

通话中

我希望编译器查看namespace funky,直到现在与class X. 但我不想通过funky::f在调用时放置来混淆编码f

实现此目的的一种方法是定义class X为模板类,其参数来自namespace funky.

对于一个调用f(x),现在,编译器确实会寻找funky::f.

是否有更清洁/更简单的方法来实现相同的行为?(特别是,someClassFromFunky在声明中引用一些任意类class X是很尴尬的。)

0 投票
3 回答
2874 浏览

c++ - 为什么类成员函数具有相同名称的影子自由函数?

最近我注意到成员函数在类中完全隐藏了具有相同名称的自由函数。我的意思是完全不考虑重载决议的每个具有相同名称的自由函数。我可以理解为什么它是这样完成的:

在函数具有相同签名的情况下,它唯一自然的变量作用域工作方式相同。但是为什么要禁止自由函数具有不同签名的明确调用,如下所示:

我不是在问如何从类内部调用阴影自由函数。我想知道的是这个设计背后的基本原理。

0 投票
2 回答
374 浏览

c++ - C++中的模板成员函数重载和多重继承

我正在观察以下代码中的行为,我无法轻易解释,并希望更好地理解理论。我似乎找不到涵盖这种特殊情况的在线文档来源或现有问题。作为参考,我使用 Visual Studio C++ 2010 编译并运行以下代码:

为什么模板化成员函数与非模板化成员函数案例的工作方式不同?

编译器如何决定(在模板化的情况下) Top_Class::Print_Goodbye() 是适当的重载而不是 Bottom_Class::Print_Goodbye() ?

预先感谢您的考虑。

0 投票
2 回答
771 浏览

function - 如何从 clojure 中的符号中获取函数的名称?

假设我将 x 定义为符号函数 foo

如果仅给定 x,是否可以发现名称“foo”?

在这种情况下, foo 中有没有办法查找函数 x - "foo" 的名称?

是否有或者是否可以创建一个函数,例如:

0 投票
2 回答
609 浏览

c++ - 为什么子类在 C++ 中看不到父类的 typedef 结构?

我最近在父类中遇到了一些 C++ 代码typedefstruct但是,它似乎在子类中不可用,即使它没有被标记private(它是protected)。我在下面创建了一个最小的工作示例(如下)来演示此失败。我已经公开了所有内容,但仍然失败。给出的错误是(使用g++):

啊(编译)

Bh(不编译)

Bh(编译)

为什么第一个版本B.h无法编译?第二个是安全的选择吗?有没有更好(更简洁或惯用)的方法来处理这个问题?