Skip to content

Commit 87a3f45

Browse files
committed
Add <,<=,>,>= global operators
1 parent 06c148c commit 87a3f45

2 files changed

Lines changed: 72 additions & 0 deletions

File tree

include/slimcpplib/long_int.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,42 @@ constexpr bool operator!=(type_t value1, const long_int_t<native_t, size>& value
473473

474474

475475

476+
////////////////////////////////////////////////////////////////////////////////////////////////////
477+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
478+
constexpr bool operator<(type_t value1, const long_int_t<native_t, size>& value2) noexcept
479+
{
480+
return long_int_t<native_t, size>(value1) < value2;
481+
}
482+
483+
484+
485+
////////////////////////////////////////////////////////////////////////////////////////////////////
486+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
487+
constexpr bool operator<=(type_t value1, const long_int_t<native_t, size>& value2) noexcept
488+
{
489+
return long_int_t<native_t, size>(value1) <= value2;
490+
}
491+
492+
493+
494+
////////////////////////////////////////////////////////////////////////////////////////////////////
495+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
496+
constexpr bool operator>(type_t value1, const long_int_t<native_t, size>& value2) noexcept
497+
{
498+
return long_int_t<native_t, size>(value1) > value2;
499+
}
500+
501+
502+
503+
////////////////////////////////////////////////////////////////////////////////////////////////////
504+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
505+
constexpr bool operator>=(type_t value1, const long_int_t<native_t, size>& value2) noexcept
506+
{
507+
return long_int_t<native_t, size>(value1) >= value2;
508+
}
509+
510+
511+
476512
////////////////////////////////////////////////////////////////////////////////////////////////////
477513
template<typename type_t, typename native_t, uint_t size, typename std::enable_if_t<std::is_integral_v<type_t>, int> = 0>
478514
constexpr long_int_t<native_t, size> operator+(type_t value1, const long_int_t<native_t, size>& value2) noexcept

include/slimcpplib/long_uint.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,42 @@ constexpr bool operator!=(type_t value1, const long_uint_t<native_t, size>& valu
657657

658658

659659

660+
////////////////////////////////////////////////////////////////////////////////////////////////////
661+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
662+
constexpr bool operator<(type_t value1, const long_uint_t<native_t, size>& value2) noexcept
663+
{
664+
return long_uint_t<native_t, size>(value1) < value2;
665+
}
666+
667+
668+
669+
////////////////////////////////////////////////////////////////////////////////////////////////////
670+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
671+
constexpr bool operator<=(type_t value1, const long_uint_t<native_t, size>& value2) noexcept
672+
{
673+
return long_uint_t<native_t, size>(value1) <= value2;
674+
}
675+
676+
677+
678+
////////////////////////////////////////////////////////////////////////////////////////////////////
679+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
680+
constexpr bool operator>(type_t value1, const long_uint_t<native_t, size>& value2) noexcept
681+
{
682+
return long_uint_t<native_t, size>(value1) > value2;
683+
}
684+
685+
686+
687+
////////////////////////////////////////////////////////////////////////////////////////////////////
688+
template<typename type_t, typename native_t, uint_t size, std::enable_if_t<std::is_unsigned_v<type_t> || std::is_signed_v<type_t>, int> = 0>
689+
constexpr bool operator>=(type_t value1, const long_uint_t<native_t, size>& value2) noexcept
690+
{
691+
return long_uint_t<native_t, size>(value1) >= value2;
692+
}
693+
694+
695+
660696
////////////////////////////////////////////////////////////////////////////////////////////////////
661697
template<typename type_t, typename native_t, uint_t size, typename std::enable_if_t<std::is_integral_v<type_t>, int> = 0>
662698
constexpr long_uint_t<native_t, size> operator&(type_t value1, const long_uint_t<native_t, size>& value2) noexcept

0 commit comments

Comments
 (0)