gpt4 book ai didi

c++ - 实现或定义在未命名/匿名命名空间内声明的类或函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:01 26 4
gpt4 key购买 nike

在未命名(匿名)命名空间之外定义函数或类成员的实现是否合法?我的编译器接受它,但我想确保它是合法的例如

////////////////
// foo.cpp

namespace {
struct X
{
void foo(int x);
};
}

// Is this legal?
void X::foo(int x)
{
}

原因是我想避免我们的 uncrustify 格式强加的不必要的缩进

最佳答案

真的和下面的没什么区别,完全合法:

namespace ns {
struct s {
void f();
};
}

using namespace ns;

void s::f() { }

命名空间中的名称被带入全局命名空间,因此可以在那里为它们提供定义。与未命名命名空间的唯一区别是它没有名称(实际上,它有一些独特的、无法说出的名称)并且 using namespace 是隐式的。

关于c++ - 实现或定义在未命名/匿名命名空间内声明的类或函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797342/

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