연결을 위해 기존보기를 사용하고 싶습니다. 코드에서 :두 개의 기존 범위를 연결하는 방법 ::보기?
auto rng = view::empty<vector<int>>();
for(int i{0}; i < 5; ++i)
{
vector<int> const & v{foo()}; // returns a reference
rng |= view::concat(v); // doesn't compile - error: no viable overloaded '|='
};
다른 말로하면 - 실행 시까 지 번호가 알려지지 않은 여러 벡터에 대한보기를 만들려면 어떻게해야합니까?
을'무엇 유형 newRange' 그리고'foo()'함수를 볼 수 있습니까? 또한'v'는 무엇입니까? – Galik
@Galik 코드를 업데이트했습니다. 'foo()'함수는 const 참조를 반환하지만 그것은 내 질문과 관련이 없습니다. – nikitablack
범위와 관련해서는 상당히 어렵다고 생각합니다. 다른 요소가있는 n 개의 범위를 고려하십시오. 이제 전체 범위의 begin() 및 end()가 첫 번째의 begin()을 시작하고 end()의 마지막 점을 가리키며 그 사이에 우리가 k 번째 범위의 끝에 있는지 여부를 추적해야합니다. (k + 1) 번째로 이동. 컴파일 타임에''view :: concat''는 상당히 많은 기계 장치를 가지고 이것을 달성합니다. – skgbanga