Skip to content

Commit 66c758a

Browse files
refactor: Remove redundant casting templates for improved clarity and maintainability
Signed-off-by: FrozenlemonTee <1115306170@qq.com>
1 parent 109fdef commit 66c758a

1 file changed

Lines changed: 0 additions & 45 deletions

File tree

src/conversion/underlying.cppm

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -303,44 +303,7 @@ constexpr auto numeric_risk(SrcRep value)
303303
return details::numeric_risk<DestRep>(value);
304304
}
305305

306-
template <std_numeric DestRep, std_numeric SrcRep>
307-
requires details::statically_castable<DestRep, SrcRep>
308-
constexpr auto unchecked_cast(SrcRep value) noexcept
309-
-> std::remove_cvref_t<DestRep> {
310-
return details::unchecked_rep_cast<DestRep>(value);
311-
}
312-
313-
template <std_numeric DestRep, std_numeric SrcRep>
314-
requires details::statically_castable<DestRep, SrcRep>
315-
constexpr auto checked_cast(SrcRep value)
316-
-> cast_result<std::remove_cvref_t<DestRep>> {
317-
return details::checked_rep_cast<DestRep>(value);
318-
}
319-
320-
template <std_numeric DestRep, std_numeric SrcRep>
321-
requires details::statically_castable<DestRep, SrcRep>
322-
constexpr auto saturating_cast(SrcRep value) noexcept
323-
-> std::remove_cvref_t<DestRep> {
324-
return details::saturating_rep_cast<DestRep>(value);
325-
}
326-
327-
template <std_numeric DestRep, std_numeric SrcRep>
328-
requires details::statically_castable<DestRep, SrcRep>
329-
constexpr auto truncating_cast(SrcRep value) noexcept
330-
-> std::remove_cvref_t<DestRep> {
331-
return details::truncating_rep_cast<DestRep>(value);
332-
}
333-
334-
template <std_numeric DestRep, std_numeric SrcRep>
335-
requires details::statically_castable<DestRep, SrcRep>
336-
constexpr auto exact_cast(SrcRep value)
337-
-> cast_result<std::remove_cvref_t<DestRep>> {
338-
return details::exact_rep_cast<DestRep>(value);
339-
}
340-
341306
template <underlying_type Dest, underlying_type Src>
342-
requires(!details::builtin_numeric_pair<std::remove_cv_t<Dest>,
343-
std::remove_cv_t<Src>>)
344307
constexpr auto unchecked_cast(Src value) noexcept -> Dest {
345308
return details::cast_underlying_value<Dest>(
346309
value, []<typename DestRep, typename SrcRep>(SrcRep rep) {
@@ -349,8 +312,6 @@ constexpr auto unchecked_cast(Src value) noexcept -> Dest {
349312
}
350313

351314
template <underlying_type Dest, underlying_type Src>
352-
requires(!details::builtin_numeric_pair<std::remove_cv_t<Dest>,
353-
std::remove_cv_t<Src>>)
354315
constexpr auto checked_cast(Src value) -> cast_result<Dest> {
355316
return details::cast_underlying_result<Dest>(
356317
value, []<typename DestRep, typename SrcRep>(SrcRep rep) {
@@ -359,8 +320,6 @@ constexpr auto checked_cast(Src value) -> cast_result<Dest> {
359320
}
360321

361322
template <underlying_type Dest, underlying_type Src>
362-
requires(!details::builtin_numeric_pair<std::remove_cv_t<Dest>,
363-
std::remove_cv_t<Src>>)
364323
constexpr auto saturating_cast(Src value) noexcept -> Dest {
365324
return details::cast_underlying_value<Dest>(
366325
value, []<typename DestRep, typename SrcRep>(SrcRep rep) {
@@ -369,8 +328,6 @@ constexpr auto saturating_cast(Src value) noexcept -> Dest {
369328
}
370329

371330
template <underlying_type Dest, underlying_type Src>
372-
requires(!details::builtin_numeric_pair<std::remove_cv_t<Dest>,
373-
std::remove_cv_t<Src>>)
374331
constexpr auto truncating_cast(Src value) noexcept -> Dest {
375332
return details::cast_underlying_value<Dest>(
376333
value, []<typename DestRep, typename SrcRep>(SrcRep rep) {
@@ -379,8 +336,6 @@ constexpr auto truncating_cast(Src value) noexcept -> Dest {
379336
}
380337

381338
template <underlying_type Dest, underlying_type Src>
382-
requires(!details::builtin_numeric_pair<std::remove_cv_t<Dest>,
383-
std::remove_cv_t<Src>>)
384339
constexpr auto exact_cast(Src value) -> cast_result<Dest> {
385340
return details::cast_underlying_result<Dest>(
386341
value, []<typename DestRep, typename SrcRep>(SrcRep rep) {

0 commit comments

Comments
 (0)