C++ 如何将单个函数引入当前名称空间?

C++ 如何将单个函数引入当前名称空间?,c++,namespaces,C++,Namespaces,假设我想在我的命名空间A中使用std::max函数。我该怎么做 namespace A { void fun() { double x = std::max(5.0, 1.0); // I don't want to have to write the std:: } void fun() { using namespace std; double x = max(5.0, 1.0); // I don't want to have to use the using directi

假设我想在我的命名空间
A
中使用
std::max
函数。我该怎么做

namespace A {
void fun()
{
  double x = std::max(5.0, 1.0); // I don't want to have to write the std::
}

void fun()
{
  using namespace std;
  double x = max(5.0, 1.0); // I don't want to have to use the using directive to introduce the entire namespace
}

}
有没有办法做到这一点?

您可以通过使用声明在
中命名单个符号来“导入”它们:

namespace A
{
    using std::max;
这意味着定义了
A::max
,并指定了与
std::max
相同的功能;因此,尝试在
名称空间A
中查找
max
将找到所需的函数


(这是布兰登对原始帖子评论的回答版本)

使用std::max
然后,无论何时调用
max
,它都会调用
std::max
。。除非另有明确说明,如
foo::max
。我将此作为评论,因为这是一个简单的答案。“我不需要分数。”布兰登在评论中给出答案是。我个人认为这是一个愚蠢的政策,但是版主可以并且确实会删除所有不符合该政策的评论;包括包含答案的评论。所以,我已经发布了一个答案,不过如果你想获得积分并自己发布一个答案,那么ping我,我将删除mine@MattMcNabb哇!我真的不知道这样的事情可能会违反规则:It’谢谢你让我知道。顺便说一句,我喜欢你的回答。