[英]ranges v3 any_view & constant
以下瑣碎的代碼失敗了:
#include <vector>
#include <range/v3/all.hpp>
int main()
{
std::vector<int> const v{ 1, 2, 3, 4 };
ranges::any_view<int, ranges::category::bidirectional |
ranges::category::sized> const a{v};
ranges::begin(a);
}
但如果在這里刪除常量:
a { v };
一切都好。 這是一個錯誤嗎? 還是我不明白any_view
的語義。
UPD:這是 MSVC 16.9.0 Preview 1.0 編譯器。
ranges::begin(a)
調用
template<typename R>
ranges::_begin_::fn::operator ()(R && r)
期望可修改或 r 值參數r
。
a
聲明為const a{v}
將調用ranges::_begin_::fn::operator ()<const ranges::any_view<...>>(const ranges::any_view<...> && r)
即不可能,因為它會將 r 值a
綁定到 l 值參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.