【发布时间】:2016-02-26 13:13:07
【问题描述】:
我喜欢完全在头文件中实现类,但我不喜欢在我的代码中使用std::。
我认为在头文件中使用using namespace std 会很糟糕,因为这会污染所有下游源文件的命名空间。
所以我经常在头文件中做这样的事情:
class foo {
using std::vector;
// in this code I don't need to qualify vector with std::
}
但这似乎不适用于某些事情,例如std::unique_ptr、std::invalid_argument、std::move。
有什么办法可以满足我的需求吗?
【问题讨论】:
-
为什么明确说明你的东西来自哪个命名空间是一件坏事?我几乎用明确的
std::编写了所有代码,因为它清楚地表明了什么是什么。 -
它是如何“不工作”的?
-
当您忘记自己编写代码时,您将阅读代码。明确你的意思是很好的。最好的补救办法是接受
std::。您现在可能不喜欢它,但您未来的自己会感谢您对清晰度如此体贴。 -
哇,如果 std:: 惹恼了你,boost:: 会让你发疯的 O.o
-
是的,在函数范围内添加它会使它变得更没用,因为大多数时候,您只需要几次该名称,因此您添加另一行 10-15 个字符避免输入 10....
标签: c++ namespaces