@@ -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-
341306template <underlying_type Dest, underlying_type Src>
342- requires (!details::builtin_numeric_pair<std::remove_cv_t <Dest>,
343- std::remove_cv_t <Src>>)
344307constexpr 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
351314template <underlying_type Dest, underlying_type Src>
352- requires (!details::builtin_numeric_pair<std::remove_cv_t <Dest>,
353- std::remove_cv_t <Src>>)
354315constexpr 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
361322template <underlying_type Dest, underlying_type Src>
362- requires (!details::builtin_numeric_pair<std::remove_cv_t <Dest>,
363- std::remove_cv_t <Src>>)
364323constexpr 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
371330template <underlying_type Dest, underlying_type Src>
372- requires (!details::builtin_numeric_pair<std::remove_cv_t <Dest>,
373- std::remove_cv_t <Src>>)
374331constexpr 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
381338template <underlying_type Dest, underlying_type Src>
382- requires (!details::builtin_numeric_pair<std::remove_cv_t <Dest>,
383- std::remove_cv_t <Src>>)
384339constexpr 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