안녕하세요!부스트 퓨전 : flatten_view 및 zip_view 중첩
부스트 퓨전을 사용하여 다른보기를 중첩하려고 필사적으로 노력하고 있습니다. 나는 아직도 퓨전을 배우는 중이다. 그래서 바보 같은 질문이라면 사과한다.
내 실제 시나리오는 훨씬 더 복잡하지만 설명을 위해 가능한 한 단순화하려고 노력할 것입니다. 지금 달성하고 싶은 무엇
typedef fusion::vector<int, int, int> IntVector;
IntVector v1(1,2,3);
IntVector v2(4,5,6);
typedef fusion::vector<IntVector&, IntVector&> VVector;
VVector vv(v1,v2);
IE에서 vv
를 통과 게으른보기 vv
에 포함 된 벡터의 인터리빙이다 : 나는 자체가 또 다른 퓨전 벡터 vv
두 퓨전 벡터 v1
및 v2
을 포함 한하는 다음 순서는 : 나는 다음과 같이 zip
및 flatten
중첩에 대해 그것을 달성하기 위해
1,4,2,5,3,6
생각했다
:typedef fusion::zip_view<VecVector> ZipView;
auto zv = ZipView(vv);
typedef fusion::flatten_view<ZipView> FlattenView;
auto fv = FlattenView(zv);
그러나 이것은 fv
에있는 참조 해제 요소를 시작하자마자 문제가 발생합니다.
auto first = fusion::begin(fv);
이 다음과 같은 출력을 생성합니다 :
iteration01.cpp:486:27: instantiated from here
boost/fusion/view/flatten_view/flatten_view_iterator.hpp:80:36: error: no matching function for call to ‘boost::fusion::detail::make_descent_cons<boost::fusion::vector_iterator<boost::fusion::vector2<int&, int&>, 0>, void>::apply(const type)’
boost/fusion/view/flatten_view/flatten_view_iterator.hpp:80:36: note: candidate is:
boost/fusion/view/flatten_view/flatten_view_iterator.hpp:54:28: note: static boost::fusion::detail::make_descent_cons<Iterator, <template-parameter-1-2> >::type boost::fusion::detail::make_descent_cons<Iterator, <template-parameter-1-2> >::apply(const Iterator&) [with Iterator = boost::fusion::vector_iterator<boost::fusion::vector2<int&, int&>, 0>, <template-parameter-1-2> = void, boost::fusion::detail::make_descent_cons<Iterator, <template-parameter-1-2> >::type = boost::fusion::cons<boost::fusion::vector_iterator<boost::fusion::vector2<int&, int&>, 0>, boost::fusion::nil_>]
boost/fusion/view/flatten_view/flatten_view_iterator.hpp:54:28: note: no known conversion for argument 1 from ‘const type {aka const boost::fusion::vector_iterator<const boost::fusion::vector2<int&, int&>, 0>}’ to ‘const boost::fusion::vector_iterator<boost::fusion::vector2<int&, int&>, 0>&’
내가 연령대이 예 놀아 봤는데,하지만 난 무슨 일이 일어나고 있는지 주위에 내 머리를 정리하고 수 없습니다 예를 들어. 누군가가 나를 올바른 방향으로 인도 할 수 있다면 매우 감사 할 것입니다. 이것이 어리석은 질문이라면 다시 미안합니다.
감사합니다.
신속하고 유용한 답변을 보내 주셔서 감사합니다. 그게 내 문제를 완전히 해결 했으니 지금 중첩 된 견해는 더 이상 문제가되지 않습니다. – bch