C++語言、STL、標準C++庫,相比之C語言及C運行時庫(CRT)而言,更加現代、也更加健壯。正因為軟件的安全性與健壯性息息相關,所以在安全性方面,標準C++比C及CRT面臨的問題更少,那也就不足為奇了。然而,在標準C++中,仍存在一些漏洞,而且,Visual C++ 2005中的一項新增功能,使這個所謂的“循環漏洞”更加輕易被忽視。
受檢查迭代子適用于大多數STL容器類中的[ ]操作符,front和back方法;正因為算法在STL中扮演了一個重要的角色,所以與受檢迭代子進行集成,無疑對它們來說顯得至關重要。而在Microsoft安全部署中,最重要的一點就是,編譯器要在默認情況下打開安全選項,這也是受檢迭代子與STL算法中這些迭代子的使用情況。對一個使用了受檢迭代子的程序而言,所有對標準算法函數的調用,都會導致一個安全函數被調用,這意味著,假如調用一個std::merge,將會轉發至stdext::checked_merge。而在STL算法中,這些加有checked_ 前綴的版本防止了未受檢的迭代子,當使用第三方且是未用Visual C++ 2005重新編譯過的的組件時,就可以捕捉到這些未受檢迭代子了,任何試圖傳遞一個未受檢迭代子到受檢算法中的代碼,都不會通過編譯。