@@ -326,44 +326,32 @@ _Tp bit_ceil(_Tp __t) noexcept;
326326
327327template <> _EZCXX_NODISCARD _EZCXX_INLINE constexpr
328328unsigned char bit_ceil (unsigned char __t ) noexcept {
329- return
330- (__t <= static_cast <unsigned char >(std::numeric_limits<signed char >::min ()))
331- ? ((__t != 0 ) ? (static_cast <unsigned char >(1 ) << bit_width<unsigned char >(__t - 1 )) : 1 ) : 0 ;
329+ return ((__t < 2 ) ? 1 : (static_cast <unsigned char >(2 ) << (bit_width<unsigned char >(__t - 1 ) - 1 )));
332330}
333331
334332template <> _EZCXX_NODISCARD _EZCXX_INLINE constexpr
335333unsigned short bit_ceil (unsigned short __t ) noexcept {
336- return
337- (__t <= static_cast <unsigned short >(std::numeric_limits<signed short >::min ()))
338- ? ((__t != 0 ) ? (static_cast <unsigned short >(1 ) << bit_width<unsigned short >(__t - 1 )) : 1 ) : 0 ;
334+ return ((__t < 2 ) ? 1 : (static_cast <unsigned short >(2 ) << (bit_width<unsigned short >(__t - 1 ) - 1 )));
339335}
340336
341337template <> _EZCXX_NODISCARD _EZCXX_INLINE constexpr
342338unsigned int bit_ceil (unsigned int __t ) noexcept {
343- return
344- (__t <= static_cast <unsigned int >(std::numeric_limits<signed int >::min ()))
345- ? ((__t != 0 ) ? (static_cast <unsigned int >(1 ) << bit_width<unsigned int >(__t - 1 )) : 1 ) : 0 ;
339+ return ((__t < 2 ) ? 1 : (static_cast <unsigned int >(2 ) << (bit_width<unsigned int >(__t - 1 ) - 1 )));
346340}
347341
348342template <> _EZCXX_NODISCARD _EZCXX_INLINE constexpr
349343unsigned long bit_ceil (unsigned long __t ) noexcept {
350- return
351- (__t <= static_cast <unsigned long >(std::numeric_limits<signed long >::min ()))
352- ? ((__t != 0 ) ? (static_cast <unsigned long >(1 ) << bit_width<unsigned long >(__t - 1 )) : 1 ) : 0 ;
344+ return ((__t < 2 ) ? 1 : (static_cast <unsigned long >(2 ) << (bit_width<unsigned long >(__t - 1 ) - 1 )));
353345}
354346
355347template <> _EZCXX_NODISCARD _EZCXX_INLINE constexpr
356348unsigned __int48 bit_ceil (unsigned __int48 __t ) noexcept {
357- return
358- (__t <= static_cast <unsigned __int48>(std::numeric_limits<signed __int48>::min ()))
359- ? ((__t != 0 ) ? (static_cast <unsigned __int48>(1 ) << bit_width<unsigned __int48>(__t - 1 )) : 1 ) : 0 ;
349+ return ((__t < 2 ) ? 1 : (static_cast <unsigned __int48>(2 ) << (bit_width<unsigned __int48>(__t - 1 ) - 1 )));
360350}
361351
362352template <> _EZCXX_NODISCARD _EZCXX_INLINE constexpr
363353unsigned long long bit_ceil (unsigned long long __t ) noexcept {
364- return
365- (__t <= static_cast <unsigned long long >(std::numeric_limits<signed long long >::min ()))
366- ? ((__t != 0 ) ? (static_cast <unsigned long long >(1 ) << bit_width<unsigned long long >(__t - 1 )) : 1 ) : 0 ;
354+ return ((__t < 2 ) ? 1 : (static_cast <unsigned long long >(2 ) << (bit_width<unsigned long long >(__t - 1 ) - 1 )));
367355}
368356
369357// ------------------------------------------------------------------------------
0 commit comments