[string.erasure] # 27 Strings library [[strings]](./#strings) ## 27.4 String classes [[string.classes]](string.classes#string.erasure) ### 27.4.4 Non-member functions [[string.nonmembers]](string.nonmembers#string.erasure) #### 27.4.4.5 Erasure [string.erasure] [🔗](#lib:erase,basic_string) `template constexpr typename basic_string::size_type erase(basic_string& c, const U& value); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L5168) *Effects*: Equivalent to:auto it = remove(c.begin(), c.end(), value);auto r = distance(it, c.end()); c.erase(it, c.end());return r; [🔗](#lib:erase_if,basic_string) `template constexpr typename basic_string::size_type erase_if(basic_string& c, Predicate pred); ` [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L5187) *Effects*: Equivalent to:auto it = remove_if(c.begin(), c.end(), pred);auto r = distance(it, c.end()); c.erase(it, c.end());return r;