文字列の一部 (部分文字列) を見つけて消去する必要があります。string_view
とても良いアイデアのようですが、次のように動作させることはできませんstring::erase
:
// guaranteed to return a view into `str`
auto gimme_gimme_gimme(const std::string& str) -> std::string_view;
auto after_midnight(std::string& str)
{
auto man = gimme_gimme_gimme(str);
str.erase(man); // way to hopeful, not a chance though
str.erase(man.begin(), man.end()); // nope
str.erase(std::distance(str.begin(), man.begin()), man.size()); // nope
str.erase(std::distance(str.data(), man.data()), man.size()); // nope again
// for real???
}
私はこれを考えすぎていますか?文字列のその部分を消去std::string_view
する方法を与えられましたか? std::string
それとも私は誤用していstring_view
ますか?