Ошибка C2064: термин не оценивается как функция, принимающая 1 аргумент в std::unordered_map с помощью специального компC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка C2064: термин не оценивается как функция, принимающая 1 аргумент в std::unordered_map с помощью специального комп

Сообщение Anonymous »

Я пытаюсь использовать std::unordered_map с std::wstring и std::pair в качестве значения, но я хочу сравнить ключи в нижнем буквы. Я использую C++20
Но я не могу скомпилировать этот код.
#include
#include
#include
#include
#include
#include

std::wstring FOREX1 = L"BTCUSD";
std::wstring FOREX2 = L"BTCUSD";

struct CmpByWStringEquality {
bool operator()(const std::wstring& a, const std::wstring& b) const {
// Convert both strings to lowercase
std::wstring lowerA = a;
std::wstring lowerB = b;
std::transform(lowerA.begin(), lowerA.end(), lowerA.begin(), ::towlower);
std::transform(lowerB.begin(), lowerB.end(), lowerB.begin(), ::towlower);

return lowerA == lowerB;
}
};

struct PatternMatcher {

std::wstring inputValue;
explicit PatternMatcher(std::wstring a_inputValue) : inputValue(std::move(a_inputValue)) {}

static void thirdFunction(std::unordered_map& m_symbol_spreads_map) {
m_symbol_spreads_map.insert(std::make_pair(FOREX2, std::make_pair(-1, 3)));
}

static void secondFunction(std::unordered_map& m_symbol_spreads_map) {
if (m_symbol_spreads_map.find(FOREX1) == m_symbol_spreads_map.end()) {
thirdFunction(m_symbol_spreads_map);
}

double bid_spread = m_symbol_spreads_map.at(FOREX1).first;
double ask_spread = m_symbol_spreads_map.at(FOREX1).second;
std::cout

Подробнее здесь: https://stackoverflow.com/questions/786 ... -in-stduno

Вернуться в «C++»