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中文網其他相關文章!