string_number_conversions_win.cc 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "base/strings/string_number_conversions_win.h"
  5. #include <string>
  6. #include "base/strings/string_number_conversions_internal.h"
  7. #include "base/strings/string_piece.h"
  8. namespace base {
  9. std::wstring NumberToWString(int value) {
  10. return internal::IntToStringT<std::wstring>(value);
  11. }
  12. std::wstring NumberToWString(unsigned value) {
  13. return internal::IntToStringT<std::wstring>(value);
  14. }
  15. std::wstring NumberToWString(long value) {
  16. return internal::IntToStringT<std::wstring>(value);
  17. }
  18. std::wstring NumberToWString(unsigned long value) {
  19. return internal::IntToStringT<std::wstring>(value);
  20. }
  21. std::wstring NumberToWString(long long value) {
  22. return internal::IntToStringT<std::wstring>(value);
  23. }
  24. std::wstring NumberToWString(unsigned long long value) {
  25. return internal::IntToStringT<std::wstring>(value);
  26. }
  27. std::wstring NumberToWString(double value) {
  28. return internal::DoubleToStringT<std::wstring>(value);
  29. }
  30. namespace internal {
  31. template <>
  32. class WhitespaceHelper<wchar_t> {
  33. public:
  34. static bool Invoke(wchar_t c) { return 0 != iswspace(c); }
  35. };
  36. } // namespace internal
  37. bool StringToInt(WStringPiece input, int* output) {
  38. return internal::StringToIntImpl(input, *output);
  39. }
  40. bool StringToUint(WStringPiece input, unsigned* output) {
  41. return internal::StringToIntImpl(input, *output);
  42. }
  43. bool StringToInt64(WStringPiece input, int64_t* output) {
  44. return internal::StringToIntImpl(input, *output);
  45. }
  46. bool StringToUint64(WStringPiece input, uint64_t* output) {
  47. return internal::StringToIntImpl(input, *output);
  48. }
  49. bool StringToSizeT(WStringPiece input, size_t* output) {
  50. return internal::StringToIntImpl(input, *output);
  51. }
  52. bool StringToDouble(WStringPiece input, double* output) {
  53. return internal::StringToDoubleImpl(
  54. input, reinterpret_cast<const uint16_t*>(input.data()), *output);
  55. }
  56. } // namespace base