jeudi 6 août 2020

Moving element from container does not empty container?

Given the following code:

#include <vector>
#include <iostream>

struct number {
    int n{666};
};


int main()
{
    std::vector<number> vec;
    std::cerr << vec.size() << std::endl;
    number n;
    vec.push_back(n);
    std::cerr << vec.size() << std::endl;
    auto b = std::move(vec.front());
    std::cerr << "b: " << b.n << std::endl;
    std::cerr << vec.size() << std::endl;
}

I get the following output:

0
1
b: 666
1

Shouldn't the last 1 be 0?

Aucun commentaire:

Enregistrer un commentaire