我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::cout和std::cin直接代替.
为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
在一些代码,我继承,我看到经常使用size_t与std命名空间限定词.例如:
std::size_t n = sizeof( long );
Run Code Online (Sandbox Code Playgroud)
当然,它编译并运行良好.但对我来说这似乎是不好的做法(也许是从C继承下来的?).
是不是真的size_t是内置到C++中,因此在全局命名空间中?是否需要size_t在C++中使用头文件?
提出这个问题的另一种方法是,是否需要在所有C++编译器上编译以下程序(没有包含)?
size_t foo()
{
return sizeof( long );
}
Run Code Online (Sandbox Code Playgroud)