Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Pimenov <m@maps.me>2017-11-30 18:27:48 +0300
committerVladimir Byko-Ianko <bykoianko@gmail.com>2017-12-01 19:01:23 +0300
commit6595b3e342cea1bbf465d0db400df4f5a24ce249 (patch)
tree126d8316a20ccb3abbb43713d84001b75d402269 /coding/multilang_utf8_string.cpp
parentcb246cd613709478dd4d805693705172d091d0ed (diff)
[coding] Replaced two classes with lambdas in StringUtf8Multilang.
Diffstat (limited to 'coding/multilang_utf8_string.cpp')
-rw-r--r--coding/multilang_utf8_string.cpp52
1 files changed, 15 insertions, 37 deletions
diff --git a/coding/multilang_utf8_string.cpp b/coding/multilang_utf8_string.cpp
index a99add2439..46b1c0fd75 100644
--- a/coding/multilang_utf8_string.cpp
+++ b/coding/multilang_utf8_string.cpp
@@ -209,52 +209,30 @@ bool StringUtf8Multilang::HasString(int8_t lang) const
return false;
}
-namespace
-{
-
-struct Printer
-{
- explicit Printer(string & out) : m_out(out) {}
-
- base::ControlFlow operator()(int8_t code, string const & name) const
- {
- m_out += string(StringUtf8Multilang::GetLangByCode(code)) + string(":") + name + " ";
- return base::ControlFlow::Continue;
- }
-
- string & m_out;
-};
-
-struct Finder
+int8_t StringUtf8Multilang::FindString(string const & utf8s) const
{
- explicit Finder(string const & s) : m_s(s), m_res(-1) {}
+ int8_t result = kUnsupportedLanguageCode;
- base::ControlFlow operator()(int8_t code, string const & name)
- {
- if (name == m_s)
+ ForEach([&utf8s, &result](int8_t code, string const & name) -> base::ControlFlow {
+ if (name == utf8s)
{
- m_res = code;
+ result = code;
return base::ControlFlow::Break;
}
return base::ControlFlow::Continue;
- }
-
- string const & m_s;
- int8_t m_res;
-};
-
-} // namespace
+ });
-int8_t StringUtf8Multilang::FindString(string const & utf8s) const
-{
- Finder finder(utf8s);
- ForEach(finder);
- return finder.m_res;
+ return result;
}
string DebugPrint(StringUtf8Multilang const & s)
{
- string out;
- s.ForEach(Printer(out));
- return out;
+ string result;
+
+ s.ForEach([&result](int8_t code, string const & name) -> base::ControlFlow {
+ result += string(StringUtf8Multilang::GetLangByCode(code)) + string(":") + name + " ";
+ return base::ControlFlow::Continue;
+ });
+
+ return result;
}