Я пытаюсь использовать 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