【发布时间】:2021-12-29 22:55:53
【问题描述】:
在一个程序中,我大量使用了 std 库。我想命名一个函数less(),但是这已经在std 中使用了。有没有我可以在using namespace std; 之后添加的行,它将清除less() 以便稍后声明。
目前我收到“错误:对 'less' 的引用不明确”。
我知道我可以列出我正在使用的所有内容(例如using std::cout;),我只是想问一下是否有“否定”版本。
谢谢你,丹尼尔
【问题讨论】:
-
这是一个完美的例子,说明为什么你永远不应该使用'using namespace std',参见stackoverflow.com/questions/1452721/…
-
没有。一旦完成,
using指令(如using namespace std)的效果将无法撤消。解决方案是避免使用using指令,或者完全限定名称(例如,如果函数不在任何命名空间中,则调用函数::less,如果在yournamespace中,则调用函数yournamespace::less)。