When I compile the code below, I get a compilation error:
std::vector<std::unique_ptr<boxIndex>> tmpVec; for(const auto& it: hrzBoxTmpMap){ for(const auto& it2: hrzBoxVec){ std::copy_if(hrzBoxVec.begin(), hrzBoxVec.end(), tmpVec.begin(), [&](std::unique_ptr<boxIndex>& p) { return !(it.second == p->getTop() && it.first != p->getLeft() ); }); } }
Compilation Error:
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_algo.h: > In instantiation of '_OIter std::copy_if(_IIter, _IIter, _OIter, > _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<std::unique_ptr<boxIndex>*, std::vector<std::unique_ptr<boxIndex> > >; _OIter = > __gnu_cxx::__normal_iterator<std::unique_ptr<boxIndex>*, std::vector<std::unique_ptr<boxIndex> > >; _Predicate = > smoothHrzIndexing(std::vector<std::unique_ptr<boxIndex> > >&)::<lambda(std::unique_ptr<boxIndex>&)>]': test_word_2.cpp:282:5: required from here > /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_algo.h:990:6: > error: use of deleted function 'std::unique_ptr<_Tp, _Dp>& > std::unique_ptr<_Tp, _Dp>::operator=(const std::unique_ptr<_Tp, _Dp>&) > [with _Tp = boxIndex; _Dp = std::default_delete<boxIndex>]' In file > included from > /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/memory:86:0, > from test_word_2.cpp:8: /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/unique_ptr.h:263:19: > error: declared here
Can someone help me with this?
c ++ vector c ++ 11 const
user3665224
source share