<map>
#include <iostream>
struct ChannelOptions {
const std::string guid_travi;
ChannelOptions(
const std::string& guid_travi
)
: guid_travi(guid_travi)
{}
ChannelOptions() = default;
};
struct Thing {
std::map<std::string, ChannelOptions> m;
Thing(const std::map<std::string, ChannelOptions> &x)
: m(x)
{}
Thing() = default;
};
int main() {
std::map<std::string, ChannelOptions> z1 = {
{"a", ChannelOptions{"travi"}}
};
std::map<std::string, ChannelOptions> z2 = {
{"b", ChannelOptions{"wat"}}
};
Thing x(z1);
Thing y(z2);
x = y;
for (auto &&p : x.m)
std::cout << p.first << "; " << p.second.guid_travi << std::endl;
return 0;
}
как оно так лихо прожёвывает присваивание объектов с константными полями?
Зачем ты дефолтные оставляешь?
Я так не веник глубоко, но похоже это просто у тебя move срабатывает
присваивание мап же не присваивает key/value
Обсуждают сегодня