以下[over.load] / 1中突出显示的句子是什么意思?

Ale*_*der 11 c++ overloading using-directives language-lawyer name-lookup

下面突出显示的句子是什么意思?它与功能模板有关系吗?

[过载] / 1

并非所有函数声明都可以重载。此处指定不能过载的那些。如果程序在同一作用域中包含两个此类不可重载的声明,则该程序格式错误。[?注意:此限制适用于范围中的显式声明,以及此类声明与通过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指令允许名称查找找到两个函数,并且此时调用是不明确的。

这里的函数集包含两个不可重载的函数,但是由于它们是通过按引号进行名称查找而找到的,所以可以。