diff options
author | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-03-25 20:11:40 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-03-25 20:11:47 +0100 |
commit | 2e97d8001705214b6b915b61a2c9c34832b85323 (patch) | |
tree | 96ebdf569fe04d9945475cbd04b84a115769c787 /src/util/string.h | |
parent | 7c942250264e75957d7737ff0d2f5c72e0e19a42 (diff) | |
parent | d056df033a1e88554f7cc39dd709a87b17cb49df (diff) | |
download | bitcoin-2e97d8001705214b6b915b61a2c9c34832b85323.tar.xz |
Merge #18134: Replace std::to_string with locale-independent alternative
d056df033a1e88554f7cc39dd709a87b17cb49df Replace std::to_string with locale-independent alternative (Ben Woosley)
Pull request description:
Addresses #17866 following practicalswift's suggestion:
https://github.com/bitcoin/bitcoin/issues/17866#issuecomment-584287299
~Used ::ToString to avoid aliasing issues. Left uses in QT and test.~
ACKs for top commit:
practicalswift:
ACK d056df033a1e88554f7cc39dd709a87b17cb49df
laanwj:
ACK d056df033a1e88554f7cc39dd709a87b17cb49df
Tree-SHA512: 9e6966a9cdd14f4a1a40d9f0fa7c402aed22b2f1ad8681708e22b050d51a91c5d62220a9ec4c425be2d57acf5c964fca87a5e981b5cbff048bc3b6720dae92b7
Diffstat (limited to 'src/util/string.h')
-rw-r--r-- | src/util/string.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/util/string.h b/src/util/string.h index 3db8fc8b98..694f0a1ca4 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -8,6 +8,8 @@ #include <attributes.h> #include <cstring> +#include <locale> +#include <sstream> #include <string> #include <vector> @@ -52,4 +54,16 @@ NODISCARD inline bool ValidAsCString(const std::string& str) noexcept return str.size() == strlen(str.c_str()); } +/** + * Locale-independent version of std::to_string + */ +template <typename T> +std::string ToString(const T& t) +{ + std::ostringstream oss; + oss.imbue(std::locale::classic()); + oss << t; + return oss.str(); +} + #endif // BITCOIN_UTIL_STRENCODINGS_H |