在std::vector 的[] 運算子中維護邊界檢查以進行調試
尋求將程式碼從Borland C 無縫遷移到Visual Studio,您遇到了std::vector 行為的差異。預設情況下,Visual Studio 會對 at() 函數和 [] 運算子執行邊界檢查,即使在發布版本中也是如此。但是,您希望僅在偵錯模式下選擇性地啟用邊界檢查,以改善錯誤偵測。
幸運的是,Visual Studio 允許您透過名為 _SECURE_SCL 的巨集自訂此行為。將 _SECURE_SCL 設為 0,您可以在發布模式下停用 [] 運算子的邊界檢查,同時將其保留在偵錯模式下。這將為您提供所需的功能,並確保越界存取觸發 std::out_of_range 異常,從而加快錯誤識別。
值得注意的是,隨著即將發布的 Visual Studio 2010 版本,邊界檢查將不再適用。計劃在發布版本中預設為停用,但在偵錯版本中保留。為了控制此行為,巨集將被重新命名為 _ITERATOR_DEBUG_LEVEL,允許您為每個建置配置指定所需的邊界檢查等級。
以上是如何在 Visual Studio 中維護「std::vector」的 [] 運算子的邊界檢查以進行偵錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!