Skip to content

Commit a91dd53

Browse files
committed
Addressed review comments
1 parent 6d01edb commit a91dd53

File tree

2 files changed

+37
-15
lines changed

2 files changed

+37
-15
lines changed

libcxx/include/string

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3939,9 +3939,22 @@ _LIBCPP_EXPORTED_FROM_ABI string to_string(long __val);
39393939
_LIBCPP_EXPORTED_FROM_ABI string to_string(unsigned long __val);
39403940
_LIBCPP_EXPORTED_FROM_ABI string to_string(long long __val);
39413941
_LIBCPP_EXPORTED_FROM_ABI string to_string(unsigned long long __val);
3942+
3943+
# if _LIBCPP_STD_VER >= 26
3944+
inline namespace __cpp26 {
3945+
_LIBCPP_EXPORTED_FROM_ABI string __to_string(float __val);
3946+
_LIBCPP_EXPORTED_FROM_ABI string __to_string(double __val);
3947+
_LIBCPP_EXPORTED_FROM_ABI string __to_string(long double __val);
3948+
3949+
_LIBCPP_HIDE_FROM_ABI inline string to_string(float __val) { return __to_string(__val); }
3950+
_LIBCPP_HIDE_FROM_ABI inline string to_string(double __val) { return __to_string(__val); }
3951+
_LIBCPP_HIDE_FROM_ABI inline string to_string(long double __val) { return __to_string(__val); }
3952+
} // namespace __cpp26
3953+
# else
39423954
_LIBCPP_EXPORTED_FROM_ABI string to_string(float __val);
39433955
_LIBCPP_EXPORTED_FROM_ABI string to_string(double __val);
39443956
_LIBCPP_EXPORTED_FROM_ABI string to_string(long double __val);
3957+
# endif
39453958

39463959
# if _LIBCPP_HAS_WIDE_CHARACTERS
39473960
_LIBCPP_EXPORTED_FROM_ABI int stoi(const wstring& __str, size_t* __idx = nullptr, int __base = 10);
@@ -3960,9 +3973,22 @@ _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(long __val);
39603973
_LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(unsigned long __val);
39613974
_LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(long long __val);
39623975
_LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(unsigned long long __val);
3976+
3977+
# if _LIBCPP_STD_VER >= 26
3978+
inline namespace __cpp26 {
3979+
_LIBCPP_EXPORTED_FROM_ABI wstring __to_wstring(float __val);
3980+
_LIBCPP_EXPORTED_FROM_ABI wstring __to_wstring(double __val);
3981+
_LIBCPP_EXPORTED_FROM_ABI wstring __to_wstring(long double __val);
3982+
3983+
_LIBCPP_HIDE_FROM_ABI inline wstring to_wstring(float __val) { return __to_wstring(__val); }
3984+
_LIBCPP_HIDE_FROM_ABI inline wstring to_wstring(double __val) { return __to_wstring(__val); }
3985+
_LIBCPP_HIDE_FROM_ABI inline wstring to_wstring(long double __val) { return __to_wstring(__val); }
3986+
} // namespace __cpp26
3987+
# else
39633988
_LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(float __val);
39643989
_LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(double __val);
39653990
_LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(long double __val);
3991+
# endif
39663992
# endif // _LIBCPP_HAS_WIDE_CHARACTERS
39673993

39683994
template <class _CharT, class _Traits, class _Allocator>

libcxx/src/string.cpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -373,19 +373,17 @@ wstring to_wstring(unsigned long val) { return i_to_string<wstring>(val); }
373373
wstring to_wstring(unsigned long long val) { return i_to_string<wstring>(val); }
374374
#endif
375375

376-
#if _LIBCPP_STD_VER >= 26
377-
378-
string to_string(float val) { return std::format("{}", val); }
379-
string to_string(double val) { return std::format("{}", val); }
380-
string to_string(long double val) { return std::format("{}", val); }
381-
382-
# ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
383-
wstring to_wstring(float val) { return std::format(L"{}", val); }
384-
wstring to_wstring(double val) { return std::format(L"{}", val); }
385-
wstring to_wstring(long double val) { return std::format(L"{}", val); }
386-
# endif
387-
388-
#else
376+
namespace __cpp26 {
377+
_LIBCPP_EXPORTED_FROM_ABI string __to_string(float __val) { return std::format("{}", __val); }
378+
_LIBCPP_EXPORTED_FROM_ABI string __to_string(double __val) { return std::format("{}", __val); }
379+
_LIBCPP_EXPORTED_FROM_ABI string __to_string(long double __val) { return std::format("{}", __val); }
380+
381+
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
382+
_LIBCPP_EXPORTED_FROM_ABI wstring __to_wstring(float __val) { return std::format(L"{}", __val); }
383+
_LIBCPP_EXPORTED_FROM_ABI wstring __to_wstring(double __val) { return std::format(L"{}", __val); }
384+
_LIBCPP_EXPORTED_FROM_ABI wstring __to_wstring(long double __val) { return std::format(L"{}", __val); }
385+
#endif
386+
} // namespace __cpp26
389387

390388
string to_string(float val) { return as_string(snprintf, initial_string< string>()(), "%f", val); }
391389
string to_string(double val) { return as_string(snprintf, initial_string< string>()(), "%f", val); }
@@ -397,6 +395,4 @@ wstring to_wstring(double val) { return as_string(get_swprintf(), initial_string
397395
wstring to_wstring(long double val) { return as_string(get_swprintf(), initial_string<wstring>()(), L"%Lf", val); }
398396
# endif
399397

400-
#endif // _LIBCPP_STD_VER >= 26
401-
402398
_LIBCPP_END_NAMESPACE_STD

0 commit comments

Comments
 (0)