gpt4 book ai didi

c++ - 是否可以在外部定义嵌套匿名命名空间的成员名称?

转载 作者:行者123 更新时间:2023-12-04 16:59:44 25 4
gpt4 key购买 nike

如果我有一个嵌套在另一个命名空间中的匿名命名空间,并且前者有一个函数声明。那么如何在命名空间之外定义该函数呢?

namespace A{
namespace{
void foo();
}
}

void A::foo(){} // error: 'void A::f()' should have been declared inside 'A'
  • 那么是否可以定义 foo()外部(在全局命名空间中)?
  • 最佳答案

    将匿名命名空间也变成内联命名空间。

    namespace A {
    inline namespace {
    void foo();
    }
    }
    它会溢出 foo进入 A适用于大多数意图和目的,就好像它直接贴在那里一样。但是未命名命名空间带来的静态链接被保留了下来。
    就像 A 的直接成员一样,您的定义将有效。

    关于c++ - 是否可以在外部定义嵌套匿名命名空间的成员名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66825081/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com