正如我在最新的标准草案中找到的那样,在cppreference.com std::basic_string<T>::replace
上可以调用const_iterator
作为其参数(例如,在其第二种形式中,其中包含部分字符串)被其他字符串替换)并且甚至没有迹象表明它在C ++ 11/14中已被更改
然而,当我看到g ++ / clang ++时,即使是最新的稳定版本也拒绝编译以下代码:
#include <string>
void f () {
std::string test = "testtt";
test.replace (test.cbegin (), test.cend (), "omg");
}
所以我的问题是:我错过了什么,我的例子是错的吗?那方面的标准有变化吗?或者它是编译器标准库的错误吗?