У меня возникла проблема при попытке назначить карте struct
с элементами const&
.
struct test {
const int& number;
test(const int& cnumber) : number(cnumber) {}
test(const test&) = default;
test& operator=(const test&) = default;
};
int main () {
std::map<std::string, test> testmap;
testmap["asd"] = test(2);
}
Выполнение этого кода вызывает ошибку C2280 'test &test::operator =(const test &)': attempting to reference a deleted function
Может ли кто-нибудь объяснить мне, в чем проблема? Это минимально воспроизводимый пример. В моем реальном проекте данных намного больше, поэтому было бы нецелесообразно передавать по значению.