Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Problem z kompilacją błąd C2440 podczas dodawania Switchbota

Featured Replies

Opublikowano

Siemka. Próbuje dodać switchbot z tego tematu: 

 

HTMLKod został skopiowany
https://sharegon.pl/topic/800-zmieniacz-bonusów-fixy/

 

I wyskakuje mi ten błąd podczas kompilacji binki. 

 

HTMLKod został skopiowany
PythonSwitchbot.cpp(196,13): error C2440: "inicjowanie": nie można konwertować z "std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const unsigned char,long>>>>" na "std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const unsigned char,long>>>> &"

 

Nie mam pojęcia zupełnie o co chodzi. Pomoże ktoś?

Rozwiązane przez Sevence

Opublikowano
  • Autor
W dniu 18.07.2024 o 21:17, Sevence napisał(a):

Wrzuć tu kod i pełne funkcje w liniach do których są odwołania w tym błędzie, nie chce mi się pobierać paczki. 

 

Error odwołuje się do tej linii: 

HTMLKod został skopiowany
auto& it2 = it->second.find(table.apply_num);		if (it2 == it->second.end())		{			it->second.insert(std::make_pair(table.apply_num, table.max_value));		}		else		{			it2->second = table.max_value;		}

 

Cały Error ogólnie wygląda tak:

HTMLKod został skopiowany
16>D:\Binka\Client\UserInterface\PythonSwitchbot.cpp(196,13): error C2440: "inicjowanie": nie można konwertować z "std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const unsigned char,long>>>>" na "std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const unsigned char,long>>>> &"16>(kompilowanie pliku źródłowego „/PythonSwitchbot.cpp”)16>D:\Binka\Client\UserInterface\PythonSwitchbot.cpp(196,13):16>Odwołanie niestałe może zostać powiązane tylko z wartościowaniem lewostronnym16>Kompilowanie projektu „UserInterface.vcxproj” wykonane — NIEPOWODZENIE.

 

 

W załączniku dam te pliki PythonSwitchbot. 

PythonSwitchbot.cppNiedostępne PythonSwitchbot.hNiedostępne

Opublikowano
  • Rozwiązanie

Twój błąd wynika z użycia referencji do wskaźnika po prostu usuń &.

 

CKod został skopiowany
void CPythonSwitchbot::AddAttributeToMap(const TSwitchbottAttributeTable& table){	const auto it = m_map_AttributesBySet.find(table.attribute_set);	if (it == m_map_AttributesBySet.end())	{		std::map<BYTE, long> attribute_map;		attribute_map.insert(std::make_pair(table.apply_num, table.max_value)); 		m_map_AttributesBySet.insert(std::make_pair(table.attribute_set, attribute_map));	}	else	{		auto it2 = it->second.find(table.apply_num);		if (it2 == it->second.end())		{			it->second.insert(std::make_pair(table.apply_num, table.max_value));		}		else		{			it2->second = table.max_value;		}	}}
Opublikowano
  • Autor
W dniu 18.07.2024 o 21:29, Sevence napisał(a):

Twój błąd wynika z użycia referencji do wskaźnika po prostu usuń &.

 

CKod został skopiowany
void CPythonSwitchbot::AddAttributeToMap(const TSwitchbottAttributeTable& table){	const auto it = m_map_AttributesBySet.find(table.attribute_set);	if (it == m_map_AttributesBySet.end())	{		std::map<BYTE, long> attribute_map;		attribute_map.insert(std::make_pair(table.apply_num, table.max_value)); 		m_map_AttributesBySet.insert(std::make_pair(table.attribute_set, attribute_map));	}	else	{		auto it2 = it->second.find(table.apply_num);		if (it2 == it->second.end())		{			it->second.insert(std::make_pair(table.apply_num, table.max_value));		}		else		{			it2->second = table.max_value;		}	}}

 

Jaaa.. Bez kitu.. Nie zauważyłem tego. Przecież na końcu error'u jest napisane. 

 

Dziękuje Ci bardzo dobry człowieku, jestem ślepy.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.