Remove This Idiom

By Victor Ciura

Most seasoned C++ developers are familiar with the erase-remove(_if) idiom when using STL. The std::remove(_if) algorithm is a showcase of the beauty of STL generic design and the power of algorithmic composition through iterators.

Yet this seemingly trivial task of removing elements from a collection (based on a predicate) is an epitome of C++ footguns. And no modern compiler or static analysis can warn you about it. We are on our own. Ask me how I know…

Fear not, C++20 has a better alternative for us and it’s 100% safe and much leaner to use.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.