Consider following code:
#include <iostream>
#include <vector>
struct C {
std::vector<int> a;
std::string b;
bool c;
};
void printC(const C &c) {
// ...
}
int main() {
printC({
{ 1, 2, 3 },
"ehlo",
false
});
}
This works, because compiler can generate proper constructor for me. But if I change struct C to this:
struct C {
std::vector<int> a;
std::string b;
bool c;
C() {
c = false;
}
};
The printC call stops working because compiler stops generating appropriate constructor. I've tried to write myself a constructor using std::initializer_list but failed.
So the question is - How to write constructor that will make the above code compile and work again?
Aucun commentaire:
Enregistrer un commentaire