【发布时间】:2020-08-07 06:17:30
【问题描述】:
考虑以下演示程序
#include <iostream>
inline namespace A
{
}
namespace A:: inline B
{
void f() { std::cout << "Hello nested namespace definition.\n"; }
}
int main()
{
f();
return 0;
}
编译器clang HEAD 11.0.0对程序的编译结果如下
prog.cc:7:11: warning: inline namespace reopened as a non-inline namespace
namespace A:: inline B
^
inline
prog.cc:3:18: note: previous definition is here
inline namespace A
^
1 warning generated.
Hello nested namespace definition.
但是根据嵌套命名空间定义的语法,我可能不会在命名空间A之前使用关键字inline。
这是编译器的错误还是我做错了什么?
顺便说一句,编译器gcc HEAD 10.0.1 20200 编译程序时没有任何警告。
【问题讨论】:
-
我真的不明白为什么你 DV 我的答案,probem 不是取消引用部分,这实际上是正确的,最初我也这么认为,问题是 for 循环限制是另一种方式大约。实际上,我很欣赏您的回答并多次对其进行紫外线照射。
标签: c++ namespaces definition c++20 inline-namespaces