Ale*_*der 11 c++ overloading using-directives language-lawyer name-lookup
下面突出显示的句子是什么意思?它与功能模板有关系吗?
并非所有函数声明都可以重载。此处指定不能过载的那些。如果程序在同一作用域中包含两个此类不可重载的声明,则该程序格式错误。[?注意:此限制适用于范围中的显式声明,以及此类声明与通过using-declaration([namespace.udecl])进行的声明之间的声明。它不适用于因名称查找(例如,由于使用指令)或重载解析(例如,用于操作员功能)而构造的功能集。-?尾注?]
Rak*_*111 11
您可以执行以下操作:
namespace N {
void f(int);
}
namespace M {
int f(int);
}
using namespace N; // ok
using namespace M; // ok
// even if both have conflicting f's
Run Code Online (Sandbox Code Playgroud)
您不会在这里直接超载任何内容。using指令允许名称查找找到两个函数,并且此时调用是不明确的。
这里的函数集包含两个不可重载的函数,但是由于它们是通过按引号进行名称查找而找到的,所以可以。