相关疑难解决方法(0)

为什么"使用命名空间std"被认为是不好的做法?

我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::coutstd::cin直接代替.

为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?

c++ namespaces using-directives std c++-faq

2486
推荐指数
36
解决办法
78万
查看次数

在匿名命名空间中使用命名空间是否安全?

匿名命名空间内的"using namespace"语句中,询问以下内容是否合法

//file.cpp
//....
namespace
{
    using namespace std;
}

int a(){
 cout << "bla";
}
Run Code Online (Sandbox Code Playgroud)

答案是"它是".此外,使用命名空间指令通常被鄙视,即使插入cpp文件中也是如此,因为自引入统一构建(/sf/answers/453234211/)以来,头文件和实现文件之间的范围差异并不稳固.

我的问题:匿名命名空间是否使我免于此类问题,或者using指令是否仍能传播文件边框?在/sf/answers/180452331/中,提出了类似的方法.它是否也适用于匿名命名空间,它是否真的安全?当然std是一个糟糕的例子,但例如using namespace boost::assign;在某些cpp文件中会非常方便.

c++ namespaces using-directives

4
推荐指数
1
解决办法
755
查看次数

标签 统计

c++ ×2

namespaces ×2

using-directives ×2

c++-faq ×1

std ×1