diff --git a/libgnucash/engine/gnc-int128.hpp b/libgnucash/engine/gnc-int128.hpp index 67c88d64a0..db463fad82 100644 --- a/libgnucash/engine/gnc-int128.hpp +++ b/libgnucash/engine/gnc-int128.hpp @@ -90,38 +90,25 @@ enum // Values for m_flags */ /** Default constructor. Makes 0. */ GncInt128(); - template + template ::value, bool> = true> GncInt128(T lower) : GncInt128(INT64_C(0), static_cast(lower)) - { - static_assert (std::is_integral(), - "GncInt128 can be constructed only with " - "integral arguments."); - } + {} GncInt128(uint64_t lower) : GncInt128 {UINT64_C(0), lower} {} /** Double-integer constructor template. */ - template + template ::value && + std::is_integral::value), bool> = true> GncInt128(T upper, U lower, unsigned char flags = '\0') : GncInt128 {static_cast(upper), - static_cast(lower), flags} - { - static_assert (std::is_integral(), - "GncInt128 can be constructed only with " - "integral arguments."); - static_assert (std::is_integral(), - "GncInt128 can be constructed only with " - "integral arguments."); - } + static_cast(lower), flags} {} GncInt128 (int64_t upper, int64_t lower, unsigned char flags = '\0'); - template + template ::value, bool> = true> GncInt128(T upper, uint64_t lower) : - GncInt128 {static_cast(upper), lower} - { - static_assert (std::is_integral(), - "GncInt128 can be constructed only with " - "integral arguments."); - } + GncInt128 {static_cast(upper), lower} {} GncInt128 (int64_t upper, uint64_t lower, unsigned char flags = '\0'); GncInt128 (uint64_t upper, uint64_t lower, unsigned char flags = '\0');