Use std::enable_if_t and std::is_signed_v.

main
Rosen Penev 3 years ago
parent ddd7ccf722
commit 436cdf0a7e

@ -26,19 +26,19 @@ struct AdditionTestValues;
* Overload for unsigned types.
*/
template <typename T>
struct AdditionTestValues<T, typename std::enable_if<!std::is_signed<T>::VALUE>::type> {
struct AdditionTestValues<T, std::enable_if_t<!std::is_signed_v<T>>> {
static const size_t case_count = 5;
static const T summand[case_count];
static const bool overflow[case_count][case_count];
};
template <typename T>
const T AdditionTestValues<T, typename std::enable_if<!std::is_signed<T>::VALUE>::type>::summand[] = {
const T AdditionTestValues<T, std::enable_if_t<!std::is_signed_v<T>>>::summand[] = {
0, 1, 2, static_cast<T>(std::numeric_limits<T>::max() - 1), std::numeric_limits<T>::max()};
template <typename T>
const bool AdditionTestValues<
T, typename std::enable_if<!std::is_signed<T>::VALUE>::type>::overflow[case_count][case_count] = {
T, std::enable_if_t<!std::is_signed_v<T>>>::overflow[case_count][case_count] = {
// 0
{false, false, false, false, false},
// 1
@ -54,14 +54,14 @@ const bool AdditionTestValues<
* Overload for signed integers
*/
template <typename T>
struct AdditionTestValues<T, typename std::enable_if<std::is_signed<T>::VALUE>::type> {
struct AdditionTestValues<T, std::enable_if_t<std::is_signed_v<T>>> {
static const size_t case_count = 8;
static const T summand[case_count];
static const bool overflow[case_count][case_count];
};
template <typename T>
const T AdditionTestValues<T, typename std::enable_if<std::is_signed<T>::VALUE>::type>::summand[] = {
const T AdditionTestValues<T, std::enable_if_t<std::is_signed_v<T>>>::summand[] = {
std::numeric_limits<T>::min(),
static_cast<T>(std::numeric_limits<T>::min() + 1),
-1,
@ -73,7 +73,7 @@ const T AdditionTestValues<T, typename std::enable_if<std::is_signed<T>::VALUE>:
template <typename T>
const bool
AdditionTestValues<T, typename std::enable_if<std::is_signed<T>::VALUE>::type>::overflow[case_count][case_count] = {
AdditionTestValues<T, std::enable_if_t<std::is_signed_v<T>>>::overflow[case_count][case_count] = {
// min
{true, true, true, false, false, false, false, false},
// min + 1

Loading…
Cancel
Save