I have an example_class with two constant fields. When I try to emplace an object of that class into a std::vector, I get various errors such as "error: object of type 'example_class' cannot be assigned because its copy assignment operator is implicitly deleted". Does anyone know what is going on here? If I remove the const in example class, the code compiles without problems.
#include <vector>
#include <iostream>
using namespace std;
class example_class {
public:
example_class(int v1, int v2) : val1(v1), val2(v2) {}
private:
const int val1, val2;
};
int main() {
vector<example_class> *vec = new vector<example_class>();
vec->emplace(vec->begin() + 1, 13131, 12313);
return 0;
}
Aucun commentaire:
Enregistrer un commentaire