Skip to content

Commit 029f1f1

Browse files
committed
change result tuple's to_number function to pass all arguments to from_chars to allow float extraction too
1 parent 78ba3a3 commit 029f1f1

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

include/ctre/return_type.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ template <size_t Id, typename Name = void> struct captured_content {
118118
}
119119

120120
#if __has_include(<charconv>)
121-
template <typename R = int> constexpr CTRE_FORCE_INLINE auto to_number(int base = 10) const noexcept -> R {
121+
template <typename R = int, typename... Ts> constexpr CTRE_FORCE_INLINE auto to_number(Ts && ... args) const noexcept -> R {
122122
R result{0};
123123
const auto view = to_view();
124-
std::from_chars(view.data(), view.data() + view.size(), result, base);
124+
std::from_chars(view.data(), view.data() + view.size(), result, std::forward<Ts>(args)...);
125125
return result;
126126
}
127127
#endif
@@ -348,8 +348,8 @@ template <typename Iterator, typename... Captures> class regex_results {
348348
}
349349

350350
#if __has_include(<charconv>)
351-
template <typename R = int> constexpr CTRE_FORCE_INLINE auto to_number(int base = 10) const noexcept -> R {
352-
return _captures.template select<0>().template to_number<R>(base);
351+
template <typename R = int, typename... Ts> constexpr CTRE_FORCE_INLINE auto to_number(Ts && ... args) const noexcept -> R {
352+
return _captures.template select<0>().template to_number<R>(std::forward<Ts>(args)...);
353353
}
354354
#endif
355355

single-header/ctre-unicode.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3406,10 +3406,10 @@ template <size_t Id, typename Name = void> struct captured_content {
34063406
}
34073407

34083408
#if __has_include(<charconv>)
3409-
template <typename R = int> constexpr CTRE_FORCE_INLINE auto to_number(int base = 10) const noexcept -> R {
3409+
template <typename R = int, typename... Ts> constexpr CTRE_FORCE_INLINE auto to_number(Ts && ... args) const noexcept -> R {
34103410
R result{0};
34113411
const auto view = to_view();
3412-
std::from_chars(view.data(), view.data() + view.size(), result, base);
3412+
std::from_chars(view.data(), view.data() + view.size(), result, std::forward<Ts>(args)...);
34133413
return result;
34143414
}
34153415
#endif
@@ -3636,8 +3636,8 @@ template <typename Iterator, typename... Captures> class regex_results {
36363636
}
36373637

36383638
#if __has_include(<charconv>)
3639-
template <typename R = int> constexpr CTRE_FORCE_INLINE auto to_number(int base = 10) const noexcept -> R {
3640-
return _captures.template select<0>().template to_number<R>(base);
3639+
template <typename R = int, typename... Ts> constexpr CTRE_FORCE_INLINE auto to_number(Ts && ... args) const noexcept -> R {
3640+
return _captures.template select<0>().template to_number<R>(std::forward<Ts>(args)...);
36413641
}
36423642
#endif
36433643

single-header/ctre.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3403,10 +3403,10 @@ template <size_t Id, typename Name = void> struct captured_content {
34033403
}
34043404

34053405
#if __has_include(<charconv>)
3406-
template <typename R = int> constexpr CTRE_FORCE_INLINE auto to_number(int base = 10) const noexcept -> R {
3406+
template <typename R = int, typename... Ts> constexpr CTRE_FORCE_INLINE auto to_number(Ts && ... args) const noexcept -> R {
34073407
R result{0};
34083408
const auto view = to_view();
3409-
std::from_chars(view.data(), view.data() + view.size(), result, base);
3409+
std::from_chars(view.data(), view.data() + view.size(), result, std::forward<Ts>(args)...);
34103410
return result;
34113411
}
34123412
#endif
@@ -3633,8 +3633,8 @@ template <typename Iterator, typename... Captures> class regex_results {
36333633
}
36343634

36353635
#if __has_include(<charconv>)
3636-
template <typename R = int> constexpr CTRE_FORCE_INLINE auto to_number(int base = 10) const noexcept -> R {
3637-
return _captures.template select<0>().template to_number<R>(base);
3636+
template <typename R = int, typename... Ts> constexpr CTRE_FORCE_INLINE auto to_number(Ts && ... args) const noexcept -> R {
3637+
return _captures.template select<0>().template to_number<R>(std::forward<Ts>(args)...);
36383638
}
36393639
#endif
36403640

0 commit comments

Comments
 (0)