R
R2D2
Hi,
could someone please explain to me, why in the
following code the second approach does not work?
Thanks for your help.
#include <vector>
class Base {};
class Inherited : public Base{};
void foo(std::vector<Base> arg) {}
void main() {
std::vector<Inherited> v1;
v1.push_back(Inherited());
// does work
std::vector<Base> v2;
for(int i=0; i<v1.size(); v2.push_back(v1[i++]));
foo(v2);
// doesn't work
foo(v1);
}
could someone please explain to me, why in the
following code the second approach does not work?
Thanks for your help.
#include <vector>
class Base {};
class Inherited : public Base{};
void foo(std::vector<Base> arg) {}
void main() {
std::vector<Inherited> v1;
v1.push_back(Inherited());
// does work
std::vector<Base> v2;
for(int i=0; i<v1.size(); v2.push_back(v1[i++]));
foo(v2);
// doesn't work
foo(v1);
}