我有一个简短的问题。有没有一种方法可以强制标准名称空间具有std::范围限定符?类似abs之类的东西;所有std函数都必须定义其范围。

我不在任何地方using namespace std我也不在using std::abs之类的东西。可能要说我包含了Windows.h可能很重要,我认为这可能是其中一些不受范围限制的函数的来源。

最佳答案

该标准不禁止其他名称空间具有名为abs的函数,只是因为abs名称空间中有名为std的函数。在std名称空间中定义的所有其他函数都是如此。

如果要确定使用std::abs。而不是abs的任何其他版本,则一定要使用std::abs。然后,在abs头文件中是否定义了windows.h的其他版本并不重要。

关于c++ - 强制标准命名空间的命名空间范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54799079/

10-13 01:57