Connecting Tech Pros Worldwide Help | Site Map

transform, boost::lambda and subscript

mojmir
Guest
 
Posts: n/a
#1: Aug 30 '08
hello,

i have two vectors and i am combining them into third one:
std::vector<intorig, result;
std::vector<size_tperm; // permutations

but i cannot compile following line:
std::transform(perm.begin(), perm.end(), result.begin(), orig[_1]);

because compiler seems to have trouble selecting among:
reindex.cpp:43: error: no match for 'operator[]' in 'orig[_1]'
stl_vector.h:462: candidates are:
_Alloc::reference std::vector<..>::operator[](size_t)
stl_vector.h:476:
_Alloc::const_reference std::vector<..>::operator[](size_t) const

i've tried another form that works
std::transform(perm.begin(), perm.end(), result.begin(),
*(&orig[0]+_1));

can you please help me understand what is going on?

many thanks in advance,
mojmir
Closed Thread