У меня есть следующий код:forward_list :: удалить метания ошибки компиляции
typedef std::forward_list<RdidSettings> RdidList;
RdidList m_rdids;
//ctor for RdidSettings
RdidSettings(_In_ const GUID& rdid, _In_ bool isDr) throw() :
//Add to rdidlist method
RdidSettings& AddRdid( _In_ const GUID& rdid, _In_ bool isDr )
{
m_rdids.emplace_front(rdid, isDr); return m_rdids.front();
}
//method for rdid list method
void RemoveRdid(_In_ RdidSettings& rdidData)
{
m_rdids.remove(rdidData); <<-- whats wrong with this remove ?
}
В тот момент я ввожу метод удалить я начинаю получать ошибку компиляции:
forward_list (1281): ошибка C2678: binary '==': оператор не найден , который принимает левый операнд типа RdidSettings '(или нет допустимого преобразования ) может быть' bool std :: operator == (const std :: error_condition &, const std :: error_code &) бросок()»
'BOOL станд :: оператор == (Const станд :: error_condition &, Const станд :: error_code &) бросок()' 6> \ SDK \ вкл \ ucrt \ stl120 \ system_error (406): или 'bool std :: operator == (const std :: error_code &, const std :: error_condition &) throw()' 6> \ sdk \ inc \ ucrt \ exception (333): или
'bool std :: operator == (const std :: exception_ptr &, std :: nullptr_t)' 6> \ sdk \ inc \ ucrt \ exception (328): или 'bool std :: operator == (std :: nullptr_t, const std :: exception_ptr &) '6> \ sdk \ i nc \ ucrt \ exception (323): или 'bool std :: operator == (const std :: exception_ptr &, const std :: exception_ptr &)' 6> при попытке соответствовать списку аргументов '(RdidSettings, const RdidSettings)»6> \ SDK \ вкл \ ucrt \ stl120 \ forward_list (1276): при компиляции класса функции члена шаблона 'аннулируются станд :: forward_list> :: удалить (Const _Ty &)' 6> с 6> [6> _Ty = RdidSettings 6>] 6> hostsettings.cpp (65): см. Ссылку на экземпляр шаблона функции 'void std :: forward_list> :: remove (const _Ty &)' скомпилировано 6> с 6> [6> _Ty = RdidSettings 6>] 6> \ hostsetti ngs.h (181): см ссылку на шаблон класса конкретизации 'станд :: forward_list>' компилируется 6> с 6> [6> _Ty = RdidSettings
Спасибо, что это значит? Вы имеете в виду реализовать перегрузку для ==. – confusednerd
Это то, что используется для поиска нужного объекта? – confusednerd
@confusednerd, вам необходимо предоставить operator ==, поэтому вы можете сравнить два объекта RdidSettings. –