Skip to content

Commit f272e44

Browse files
committed
Use std transform for conversion between string types.
1 parent 91afdb9 commit f272e44

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

Sources/NodeEngine/NE_MemoryStream.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include "NE_MemoryStream.hpp"
22
#include "NE_Debug.hpp"
33

4+
#include <algorithm>
5+
46
namespace NE
57
{
68

@@ -58,10 +60,9 @@ Stream::Status ReadString (MemoryInputStream& stream, std::wstring& val)
5860
{
5961
std::u32string u32Val;
6062
Stream::Status status = ReadString<std::u32string, char32_t> (stream, u32Val);
61-
val.clear ();
62-
for (char32_t ch : u32Val) {
63-
val += (wchar_t) ch;
64-
}
63+
std::transform (u32Val.begin (), u32Val.end (), std::back_inserter (val),
64+
[] (char32_t ch) -> wchar_t { return (wchar_t) ch; }
65+
);
6566
return status;
6667
}
6768

@@ -72,7 +73,10 @@ static Stream::Status WriteString (MemoryOutputStream& stream, const std::string
7273

7374
static Stream::Status WriteString (MemoryOutputStream& stream, const std::wstring& val)
7475
{
75-
std::u32string u32Val (val.begin (), val.end ());
76+
std::u32string u32Val;
77+
std::transform (val.begin (), val.end (), std::back_inserter (u32Val),
78+
[] (wchar_t ch) -> char32_t { return (char32_t) ch; }
79+
);
7680
return WriteString<std::u32string, char32_t> (stream, u32Val);
7781
}
7882

0 commit comments

Comments
 (0)