首頁  >  文章  >  後端開發  >  使用 NOMINMAX 時是否應該將 std::min 和 std::max 括起來?

使用 NOMINMAX 時是否應該將 std::min 和 std::max 括起來?

DDD
DDD原創
2024-11-09 17:10:021017瀏覽

Should I Parenthesize std::min and std::max When Using NOMINMAX?

std::min/max 與NOMINMAX 的歧義

嘗試利用使用Windowsstd::min 和std::max 函數在一個整合Windows .h 的C 專案中,您引入了NOMINMAX 指令以避免潛在的名稱衝突。但是,當您嘗試在不直接使用 NOMINMAX 的檔案中存取這些函數時,您會遇到障礙。

要解決此問題,Microsoft 建議採用非正統的解決方案:

將函數名稱括起來

在缺少NOMINMAX 指令的檔案中,將std::min 和std::max 函數名稱帶有括號。這種語法 (std::min)(x, y) 和 (std::max)(x, y) 可防止編譯器將它們解釋為類似函數的宏,這可能會幹擾您的意圖。

要注意的是,這個解決方案並不理想,只能被視為最後的手段。正確的方法是確保在您打算使用 std::min 和 std::max 的所有檔案中定義 NOMINMAX,從而允許編譯器一致地解決它們的歧義。

以上是使用 NOMINMAX 時是否應該將 std::min 和 std::max 括起來?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn