【发布时间】:2015-03-25 17:00:45
【问题描述】:
必须将命名空间声明为inline 是第一个,还是可以在任何时候将任何(重新打开的)命名空间声明为inline?
如果是这样,有没有办法阻止某人将命名空间声明为inline(之后)?
#include <iostream>
namespace outer {
//inline
namespace inner {
}}
//inline namespace std {}
namespace outer {
inline
namespace inner {
void foo() {
std::cout << "foo" << std::endl;
//::cout << "foo" << endl;
}
}}
int main() {
outer::foo();
}
编辑
似乎 gcc 接受了这一点,因为我首先只在 coliru 上进行了测试,但是 clang rejects it
这是一个错误吗?
【问题讨论】:
标签: c++ c++11 namespaces