标签: c++ language-lawyer
整个问题符合标题。
C ++ 14 [global.names]说
以下划线开头的每个名称都保留给实现,以用作全局名称空间中的名称。
但如果关注
namespace N { void _foo() {} } using N::_foo;
违反了规则。
答案 0 :(得分:2)
难道不是很明显吗?您的代码将以下划线开头的名称放入全局命名空间,其中此类名称保留供实现使用。不要这样做。如果实现在全局命名空间中有_foo,则会产生冲突。
_foo