Hej
Mam problem z wektorem par. Nie chce mi się taki program przykładowy skompilować. Ktoś coś?
#include <stdio.h>
#include <string>
#include <set>
#include <utility>
#include <algorithm>
#include <vector>
int main()
{
std::vector<std::pair<std::string, bool>> sponsorNames;
auto it = std::find(sponsorNames.begin(), sponsorNames.end(), [](auto& item) {return item.first == std::string("saaaas");});
if (it != sponsorNames.end())
{
it->second = true;
}
return 0;
}
Error:
/usr/include/c++/11/bits/predefined_ops.h:270:24: error: no match for ‘operator==’ (operand types are ‘std::pair, bool>’ and ‘const main()::’)
270 | { return *__it == _M_value; }
Ja natomiast wedle statycznej analizy kodu to widzę, że porównuję stringa ze stringiem. item.first to jest string a item.second to bool. Ale kompilator to widzi inaczej. No ale wiadomo to C++ silnie typowany język, więc czegoś pewnie nie dostrzegam w składni.