Я пытаюсь перегрузить оператор присваивания, чтобы разрешить присваивание множеству unordered_set.И у меня возникли проблемы, пожалуйста, помогите.
set<int> operator=(unordered_set<int> us)
{
set<int> s;
for(auto val:us) { s.insert(val); }
return s;
}
Я получаю следующую ошибку:
error: ‘std::set<int> operator=(std::unordered_set<int>)’ must be a nonstatic member function
set<int> operator=(unordered_set<int> us)
Эта функция является глобальной, не знаю, почему G ++ считает, что этостатическая функция.В качестве глупого решения я добавляю автоопределитель к функции.
set<int> auto operator=(unordered_set<int> us)
{
set<int> s;
for(auto val:us) { s.insert(val); }
return s;
}
Я получаю следующую ошибку:
error: two or more data types in declaration of ‘operator=’
set<int> auto operator=(unordered_set<int> us)
Есть идеи, как мне обойти это?Я пытался найти решение для этого, но тщетно.