我之前遇到過問題,因爲函數過載而沒有std::
。而且詛咒現在還在發生,因爲我不使用using namespace std;
。使用cmath時禁用math.h垃圾
Removing using namespace std causes the program to get crap results
有沒有一種方法來禁用來自c和僅與空間std下的C++函數工作的所有那些NON-STD功能(無需使用using namespace std;
)?
換句話說:如果我使用sin()而不是std :: sin(),那麼我就不會犯這個錯誤。當然,不僅是罪,而且每一個與math.h有衝突的功能。
謝謝。
如果你省略'math.h'並且在沒有'std ::'的情況下使用'sin',你不會得到一個錯誤嗎? – cnicutar
爲什麼不用'std ::'預先加入? –
@cnicutar:問題是''和朋友可能(或可能不)將部分或全部函數轉儲到全局名稱空間中。鏈接問題中的「垃圾」來自意外地調用「:: abs(int)」而不是「std :: abs(double)」。 –