关于 using
声明(例如 using std::vector;
),推荐的实践是什么?
它应该放在 cpp/cc 文件的顶部,还是只放在使用它的作用域中?
关于 using
声明(例如 using std::vector;
),推荐的实践是什么?
它应该放在 cpp/cc 文件的顶部,还是只放在使用它的作用域中?
总的来说,限制其范围会更好,但在实践中,为了使它产生影响,您的源文件需要添加相当数量的代码。
using
和头文件:即使是在你自己的命名空间中,也要避免使用 using
声明类型(而不是整个命名空间),以避免大量使用 std::
前缀。 - thomthomusing std::vector
而“其他人”在你的命名空间中定义了一个vector
类,则会发生名称冲突。然而,我并不明白这与我定义自定义Foo
类并且“其他人”也尝试在我的命名空间内定义Foo
类有什么区别。如果我对这个特定用法有更多的澄清细节,我会回来查看的。(虽然很难找到它表明少数人使用它-但我仍然想知道为什么)。 - thomthom如果它在cpp文件中,那就是一个风格问题。有些人更喜欢完全避免使用using
声明以避免任何歧义。如果在头文件中,始终将其放在某些作用域内,否则遵循变量的规则:尽可能将事物放在最小的作用域中。
using
。
更新:
请考虑mezhaka的评论。我没有表达得够准确,但是指的是“真正”代码的开头,即在#includes
之后。
using
应该不再使用。如果命名空间名称太长,可以使用命名空间别名。 - Kerrek SB