← Back to team overview

widelands-dev team mailing list archive

Re: coding question (pointers, upcasting ....)

 

P.S. back() returns an element and takes an empty argument. Are you
looking for push_back?

http://www.cplusplus.com/reference/vector/vector/


Sgrìobh Tibor Bamhor na leanas 25/06/2015 aig 14:36:
> Hi,
> 
> I am searching for near bobs and putting them to 
> 
> std::vector<Bob *> own_nearby;
> 
> then iterate over it and if the bob is soldier (and meets some other
> requirements) I need to put it to 
> 
> std::vector<Soldier *> defending_soldiers;
> 
> The relevant part of code is:
> 
> for (Bob * own : own_nearby) {
> if (upcast(Soldier, ownSoldier, own)) {
> if (ownSoldier->is_defending()){
> defending_soldiers.back(ownSoldier);
> }
> }
> }
> 
> But it complains during compilation:
> 
>  error: no matching function for call to 'std::vector<const
> Widelands::Soldier*>::back(Widelands::Soldier* const&)'
>        defending_soldiers.back(ownSoldier);
> 
> If I understand it correctly (if at all :) ) the upcast is making const
> from soldier... how to circumvent it? defending_soldiers vector is to be
> shortliving, immediately forgotten....
> 
> Ideas? :)
> 
> Tibor
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~widelands-dev
> Post to     : widelands-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~widelands-dev
> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> E-Mail ist virenfrei.
> Von AVG überprüft - www.avg.de <http://www.avg.de>
> Version: 2015.0.6037 / Virendatenbank: 4365/10094 - Ausgabedatum:
> 25.06.2015
> 

-- 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (MingW32)

mQINBFNbSyEBEADh+uhohycnZgPPnyMs5pZQG6pKyLzFZoIKbVjY31ZoPZ2SdltB
elrwn6kFZkQiDx4K6nkZFHsPh8RMvWoFWg1rGiWkdsZessLFawraC8YEZDwtlaU5
SFXbE4+QnMfbPhe9tmC8Nbhec3dfV9zcXAhxc+zkIUsKFhSkpJ2Syvo9FCA/5adW
UZgWWKFwlSg4+/lrhJ6QJnldPlXfWcuEasKF7fjdafDIdS5hdKu8Lv+CiPQWvgsi
J2BDlZLzEZf3PD+NMujUbJa0nilD2ltu3/qRvR2f86YV6wRwt4E2OD8JJQOau4X2
Pg7vqkIbnB9rMiQ6T17rQ4rc80eesGCxQ6XOba9oa1eRRZDwY7HJtYwvPdw9HZaN
Lq2RRbGDGO0q7fxrzbp1WuNN+UXOA/pmVzWWczPfPHVcNIehGf3wQI+Vgh/qa+IZ
jLJ25I1Tv85cDzvv5gdtI8PR4JTfK6Db+gUJmsuIg2fmsljxA7OmeTgSPR7nEVq5
VlHYfx1T0uKlthWw/eDwlS44vTgm6HZzIdYqdPMPa/PU1U+WVuDejyDJTn/1TY78
oJMT/IixFR+N+smohhKASprewcsO2ClWGptSG0sRTiCrVHFD3Mt6SCVaxsQLHvek
KuNAUXhR2KSvYuqGT0Nv3bplN6svCp4CuAGZ3lyOIt/Sb7OFUwzcx2sOdwARAQAB
tC5Gw7JyYW0gbmEgR8OgaWRobGlnIDxmaW9zQGZvcmFtbmFnYWlkaGxpZy5uZXQ+
iQI5BBMBAgAjBQJTW0shAhsPBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQ
UHP09XBr75NHNBAAxv2C/G13Z1kCFOSOnbPpzqcIDcMuP7RK1Mv5XfOZLfqSw4le
gdDmZggX2/EBH6xFTXFPLSE6rVUKTkHLA7IY8D43GBtDWjcIyyuLnIjtR+LhRKCP
3/Sm8MyZMQvUH1CBpUXFNnP/HCR6xjm1Mog5kXxFeCR9PMjeEiobKXIVuMfuNlBD
WzoR2Nh+oroXLjZw3VMFewiCyhu4Pe7F3sLpVldiI3PBOyPQOBZ3HEIM490D/Lrh
rl3Wwmoug8j8rqkh/Fr+kKaToRJik4PkcxsfepzhMdNfCpr7I3jE5XQHzib5Ubv8
wsSaVNBG92NTnGKoAntWXBUaiDN84St9l+Zm/BgedRk+7wdESHBuOuFXoRc0yEjF
4tLOhyO9u5bYGQWHyJiwhbw51R8G+Kh3OPq/tr4KmsuueEI2v5cLkoDzwCpYyMnu
BfU8d0mt5eULbQCWcy7LYeQs6E+CEB+tPL3Qz2zaAAvwt7N2PLMjHf5Fcqj5LqrV
mzQfcB9zQFq9Rtld/IIIDkE1y/q/SNFYsFNW/u/bxWsu+lMOYtBco++O5DJhAq6t
7rJXUBirju50hhogHfBL2v6RG1b8/uiWm0m8713ZhiSvpr4Dd+V+DU9nPli5nTmU
En6gP7TTYJKETMf7O9i873Z8yG6zd0/fBzFyruS2KRTPV2GiVT6CI37gUtw=
=fcOW
-----END PGP PUBLIC KEY BLOCK-----


References