我怎麼去實際調用std :: max?該代碼不會在Visual Studio 2013中編譯,因爲它將「max」作爲宏。不能調用std :: max,因爲minwindef.h定義了「max」
std::max(...);
期望在「std ::」之後有一個標識符。
我怎麼去實際調用std :: max?該代碼不會在Visual Studio 2013中編譯,因爲它將「max」作爲宏。不能調用std :: max,因爲minwindef.h定義了「max」
std::max(...);
期望在「std ::」之後有一個標識符。
可以取消定義宏:
#undef max
編輯:看來宏可以通過將
#define NOMINMAX
定義它們的頭文件之前被安全地禁用(最有可能的windef.h
,你可能包括間接)。
難道這不能打破依賴最大宏的東西嗎? – Ben
@Ben可能。我發現了一個副本,看看那個。這可能需要一些警衛。我不使用VS,所以不知道簡單的無法解決的影響。 – juanchopanza
好的,我定義了NOMINMAX。完美的作品。謝謝。 – Ben
您是否包含'cmath'? '#include' –
@ user9000'std :: max'在''中。問題是一個頑皮的VS宏。 –
juanchopanza