我有以下函数可以旋转 char 向量:
void rotate()
{
std::ranges::rotate(_right, _right.begin() + 1);
}
Run Code Online (Sandbox Code Playgroud)
_right 定义为:
std::vector<char> _right;
Run Code Online (Sandbox Code Playgroud)
尝试用 clang 15 编译它,它抱怨(https://godbolt.org/z/7ovTfxe31):
no matching function for call to '__begin'
Run Code Online (Sandbox Code Playgroud)
原因似乎如下:
in instantiation of template type alias 'iterator_t' requested here
requires contiguous_iterator<iterator_t<_Derived>>
Run Code Online (Sandbox Code Playgroud)
但我假设向量是一个连续的容器。代码使用 GCC 编译并运行。
这是我的问题: