diff --git a/src/CalcManager/CEngine/calc.cpp b/src/CalcManager/CEngine/calc.cpp index c71d2927..c5775379 100644 --- a/src/CalcManager/CEngine/calc.cpp +++ b/src/CalcManager/CEngine/calc.cpp @@ -24,17 +24,16 @@ static constexpr wstring_view DEFAULT_NUMBER_STR = L"0"; // Read strings for keys, errors, trig types, etc. // These will be copied from the resources to local memory. -unordered_map CCalcEngine::s_engineStrings; +unordered_map CCalcEngine::s_engineStrings; void CCalcEngine::LoadEngineStrings(CalculationManager::IResourceProvider& resourceProvider) { for (const auto& sid : g_sids) { - auto locKey = wstring{ sid }; - auto locString = resourceProvider.GetCEngineString(locKey); + auto locString = resourceProvider.GetCEngineString(sid); if (!locString.empty()) { - s_engineStrings[locKey] = locString; + s_engineStrings[sid] = locString; } } } diff --git a/src/CalcManager/CalculatorResource.h b/src/CalcManager/CalculatorResource.h index 5f360f35..8c4c049c 100644 --- a/src/CalcManager/CalculatorResource.h +++ b/src/CalcManager/CalculatorResource.h @@ -1,8 +1,10 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once +#include + namespace CalculationManager { class IResourceProvider @@ -19,6 +21,6 @@ namespace CalculationManager // ids "sDecimal", "sThousand" and "sGrouping". See // https://technet.microsoft.com/en-us/library/cc782655(v=ws.10).aspx // for what these values refer to. - virtual std::wstring GetCEngineString(const std::wstring& id) = 0; + virtual std::wstring GetCEngineString(std::wstring_view id) = 0; }; } diff --git a/src/CalcManager/Header Files/CalcEngine.h b/src/CalcManager/Header Files/CalcEngine.h index fa6d26d6..26b80515 100644 --- a/src/CalcManager/Header Files/CalcEngine.h +++ b/src/CalcManager/Header Files/CalcEngine.h @@ -98,7 +98,7 @@ public: { return s_engineStrings[std::to_wstring(ids)]; } - static std::wstring_view GetString(std::wstring ids) + static std::wstring_view GetString(std::wstring_view ids) { return s_engineStrings[ids]; } @@ -161,7 +161,7 @@ private: std::array m_chopNumbers; // word size enforcement std::array m_maxDecimalValueStrings; // maximum values represented by a given word width based off m_chopNumbers - static std::unordered_map s_engineStrings; // the string table shared across all instances + static std::unordered_map s_engineStrings; // the string table shared across all instances wchar_t m_decimalSeparator; wchar_t m_groupSeparator; diff --git a/src/CalcViewModel/Common/EngineResourceProvider.cpp b/src/CalcViewModel/Common/EngineResourceProvider.cpp index b65a2a31..05faff9f 100644 --- a/src/CalcViewModel/Common/EngineResourceProvider.cpp +++ b/src/CalcViewModel/Common/EngineResourceProvider.cpp @@ -17,7 +17,7 @@ namespace CalculatorApp m_resLoader = ResourceLoader::GetForViewIndependentUse("CEngineStrings"); } - wstring EngineResourceProvider::GetCEngineString(const wstring& id) + wstring EngineResourceProvider::GetCEngineString(wstring_view id) { const auto& localizationSettings = LocalizationSettings::GetInstance(); @@ -43,7 +43,7 @@ namespace CalculatorApp return numberGroupingString; } - StringReference idRef(id.c_str()); + StringReference idRef(id.data(), id.length()); String ^ str = m_resLoader->GetString(idRef); return str->Begin(); } diff --git a/src/CalcViewModel/Common/EngineResourceProvider.h b/src/CalcViewModel/Common/EngineResourceProvider.h index 8b5bb479..f4620c5c 100644 --- a/src/CalcViewModel/Common/EngineResourceProvider.h +++ b/src/CalcViewModel/Common/EngineResourceProvider.h @@ -11,7 +11,7 @@ namespace CalculatorApp { public: EngineResourceProvider(); - virtual std::wstring GetCEngineString(const std::wstring& id) override; + virtual std::wstring GetCEngineString(std::wstring_view id) override; private: Windows::ApplicationModel::Resources::ResourceLoader ^ m_resLoader;